2016-12-24 19 views
0

私はAndroidアプリでバックボタン "Cordova(version 6.3.2)というイベントを使用しています。しかし、戻るボタンがクリックされると、アプリケーションは、バックボタンイベントをトリガーする代わりに閉じます。似たような多くの質問がありますが、私は何も助けなかったので、再度尋ねなければなりませんでした。Android Cordova backbuttonイベント起動しない

私のInitスクリプト:

var cordovaInit = function(){ 

    //To bootstrap the app manually once the device is ready 
    var receivedEvent = function(){ 
     angular.bootstrap($('body'), ['myModule']); 
    }; 


    var onDeviceReady = function(){    
     console.log("Device Ready"); 
     receivedEvent('deviceReady'); 
     document.addEventListener("backbutton", function(e){ 
       // My Code here 
     }); 
    }; 

    //call onDeviceReady when the device is ready 
    this.bindEvents = function(){ 
     document.addEventListener('deviceReady', onDeviceReady, false); 
    }; 

    //If cordova is present, wait for it to initialize, otherwise just try to 
    //bootstrap the application. 

    if(window.cordova !== undefined){ 
     this.bindEvents(); 
    } 
    else{ 
     receivedEvent(); 
    } 
    }; 

    $(function(){ 
    new cordovaInit(); 
    }); 

あなたは私がdeviceReadyイベントとdeviceReadyイベントが正常に動作している後にイベントを登録していますその上で見ることができるように。 何か助けていただければ幸いです。 ありがとうございます。

+0

この問題が 'backbutton'イベントのみであるかどうかを調べるには、' volumeupbutton'、 'volumedownbutton'と' menubutton'を追加しようとしました。これらの作品はありません。誰も私がこのデバッグを助けることができますか? – superUser

答えて

0

あなたのアプリには1つの画面があり、戻るボタンを押すとアプリが終了することが考えられます。デフォルトのバック動作を防止する必要があります。バックボタンイベント内に次の行を追加してみてください。

e.preventDefault(); 
+0

返信いただきありがとうございます、私の問題は、バックボタンイベント自体がトリガーしていないことです。つまり、バックボタンイベントコールバック関数の内部には入っていません。 – superUser

0

問題がありました。私にとっては問題は日食であった。私がcordovaコマンドラインを使ってアプリケーションを構築し、apkをAndroidデバイスにダウンロードしたとき、うまくいきました。

私は以前のバージョンのCordovaで他のプロジェクトを行っていました。既にCordovaLibクラスが存在していたため、Eclipseは新しいプロジェクトから新しいものをインポートしていませんでしたが間違っていました。その後、私は新しいプロジェクトのプロパティを編集しました - また間違っていました! - 既存の(古い)CordovaLibを "Android" - > Libraryの下に追加しました。

正しい方法は、新しいCorodovaLibをプロジェクトとともにインポートし、インポート中に名前を変更することです(注意:Macでは、名前フィールドをぼかして名前を変更する必要があります)。名前フィールドにはまだ新しい名前がインポート時に無視されます)、古いCordovaLibクラスとの名前の競合を回避します。したがって、プロジェクトのプロパティ - > Android - > Libraryには、新しいバージョンのCordovaLibが含まれていなければなりません。

関連する問題