Android app
を使用してcordova 2.6.0
を作成しました。 menu
マークアップとデバイスのhtml
との対話を切り替えるjQuery
を使用して、アプリにmenubutton
機能を実装しました。しかし、ネイティブアプリのように動作するために、次の要件を達成することはできませんでした。
要件
menu
がbackbutton
の場合、menu
はデバイスのvisible
を押すと非表示になります。 menu
が表示されない場合、backbutton
は正常に動作するはずです。つまり、exit
app
であるか、back history
に移動する必要があります。
これは私のコードです
document.addEventListener('deviceready', function(){
document.addEventListener('menubutton', function(){
//Toggle Menu
//Which is working fine
});
document.addEventListener('backbutton', function(){
if(menu is visible) {
//Hide the menu
//This is also working fine
return false;
}
//BUT the default action of backbutton has gone. It cannot exit the app , neither it brings to back history.
//return true;
//I have also tried to return boolean true , but facing the same problem.
});
}, false);
実際の問題
eventlistener
にbackbutton
を添付した場合、デバイスのBack Button
は無効になり、通常どおり機能しません。
私の質問は
document.addEventListener('backbutton', function(){});
はデバイスの戻るボタンに乗っていますか?それを取り除く方法は?
これはAndroid 4.1.2デバイスで発生しています
リスナーを使用して戻るボタンをオーバーライドすると、ネイティブ機能は実行されません。終了動作も実装する必要があります。
オーバーライドする方法では、次を使用します
document.addEventListener('backbutton', function(){
if(menu is visible) {
//Hide the menu
//This is also working fine
return false;
}
else //nothing is visible, exit the app
{
navigator.app.exitApp();
}
});
お役に立てば幸いです。
あなたの質問に答えるには:
Document.addEventListener( 'backbutton'、function(){});です。デバイスの戻るボタンに乗り越えますか?それを取り除く方法は?
ページリダイレクトでイベントリスナーを削除して、後続のページで戻るボタンのネイティブ機能を引き続き使用することもできます。次のようにイベントリスナーを削除するコード:
document.removeEventListener("backbutton", onBackButton, false);
ここで、onBackButtonは、戻るボタンイベントに関連付けられた関数です。