2

アプリで動作するように Android デバイス ボタンを設定しています。PG/Cordova のドキュメントによると、次のようなリスナーを追加するだけでよいはずです。

document.addEventListener("backbutton", function() {
    console.log('Back Button Pressed.'); 
}, false);

ただし、Nexus 7 をテスト デバイスとして使用すると、何も起こりません。

また、オーバーライドを Java に直接追加しようとしました。

@Override
public void onBackPressed() {
    super.loadUrl("javascript:onBackKeyDown()");
    return;
}

しかし、もう一度、何もしないようです。他の誰かがこの問題を抱えているか、修正しましたか?

ありがとうございました。

4

1 に答える 1

1

まず、関数をコンソールに書き込みます。

document.addEventListener("backbutton", function() {
    console.log('Back Button Pressed.'); 
}, false);

デバイスをデバッグ ツールとして設定する必要があります (詳細については、以下の簡単なヒントを参照してください) 。

  • 電話を PC に接続する
  • お使いの携帯電話で: USB デバッグを確認します。設定 => 開発者向けオプション => USB デバッグ
  • あなたの電話で: 未知の情報源を確認してください。設定 >> アプリケーション >> 不明なソース = true
  • デバイスを ADT に追加します (SDK 内)。
  • プロジェクトを PC からモバイルに直接実行します。プロジェクトを右クリック => Run AS => デバイスを選択します。

今すぐ戻るボタンをクリックして、「戻るボタンが押されました。」Eclipse のコンソールに出力されます。

デバイスがコンピュータに接続されていない場合、またはデバイスがデバッグ ツールとして設定されていない場合は、何も変わりません。

一般的なケースでは、デバイスをデバッグ ツールとして設定せずにテストする場合は、「console.log()」の代わりに「alert()」を使用します。

また、ネイティブ Java を使用せず、Cordova の元のドキュメントを使用して、次のコードを JavaScript ファイルに追加するだけです。

function onLoad() {
    document.addEventListener("deviceready", onDeviceReady, false);
}

// Cordova is loaded and it is now safe to call Cordova methods
//
function onDeviceReady() {
    // Register the event listener
    document.addEventListener("backbutton", onBackKeyDown, false);
}

// Handle the back button
//
function onBackKeyDown() {
 // whatever you want to do
 alert('Back button Pressed');
}

次に、「onLoad()」を body タグに追加する必要があります。

<body onLoad="onLoad()">
于 2013-01-04T09:30:39.613 に答える