14

Android appを使って作成しcordova 2.6.0ました。マークアップをmenu使用してアプリに機能を実装し、デバイスの とのやり取りを切り替えます。しかし、ネイティブアプリのように動作するという次の要件を達成する方法がわかりませんでした。htmljQuerymenubutton

要件

がの場合、はmenu押すデバイスで非表示にする必要があります。が表示されていない場合、は正常に動作するはずです。つまり、 に移動するか、 に移動します。backbuttonmenuvisiblemenubackbuttonexitappback 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になっている場合は、正常に動作しません。backbuttonBack Button

私の質問は

document.addEventListener('backbutton', function(){});デバイスの戻るボタンを押しすぎていませんか? それを取り除く方法は?

これは Android 4.1.2 デバイスで発生しています

4

2 に答える 2

11

リスナーを使用して戻るボタンをオーバーライドすると、ネイティブ機能は実行されません。終了動作も実装する必要があります。

オーバーライド メソッドでは、次を使用します。

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();
  }
});

それが役立つことを願っています。

于 2013-09-25T08:26:36.433 に答える
1

あなたの質問に答えるには:

document.addEventListener('backbutton', function(){}); です。デバイスの戻るボタンに乗りますか?それを取り除く方法は?

ページ リダイレクトのイベント リスナーを削除して、後続のページで戻るボタンのネイティブ機能を引き続き使用することもできます。イベント リスナーを削除するコードは次のとおりです。

document.removeEventListener("backbutton", onBackButton, false);onBackButton は、戻るボタン イベントに関連付けられた関数です。

于 2016-12-26T09:11:52.203 に答える