2016-10-13 9 views
2

Androidアプリ(6.0)のビルドにCordova 6.xを使用しています。イベントリスナーを使用して戻るボタン機能をオーバーライドしました。しかし、このイベントリスナーは、アプリケーションの初回起動時に呼び出されます。しかし、私がアプリを終了して再起動すると、このイベントリスナーが戻るボタンを押すと呼び出されます。Androidアプリの初回起動時にCordovaの戻るボタンが機能しない

index.htmlを

... 
<script src="cordova.js"></script> 
<script type="text/javascript" src="app.js"></script> 
<body ng-app="app" ng-controller="appController"> 
... 

app.js

... 
angular.module('app', []).controller("appController", function($scope) { 

    document.addEventListener('deviceready', onDeviceReady, false); 

    function onDeviceReady() 
    { 
     console.log("On device ready called"); 
     document.addEventListener('backbutton', onBackButton, false); 
    } 

    function onBackButton() 
    { 
     console.log("Back button pressed"); 
    } 
}); 
... 

私は、インストール後にアプリを初めて起動すると、ログは "と呼ばれる準備ができて、デバイス上で" 持っています。しかし、アプリを再起動して戻るボタンを押すと、ログには「デバイスの準備ができました」と「戻るボタンが押されました」が表示されます。 ご協力いただければ幸いです。

+0

[ドキュメント](https://cordova.apache.org/docs/en/4.0.0/cordova/events/events.deviceready.htmlは)_The deviceready語りますイベントは他のイベントとは多少異なる動作をします。デバイスイベントが発生した後に登録されたイベントハンドラは、即時コールバック関数を持っています._ – solarc

+0

しかし、[戻る]ボタンを押すと、 "バックボタン"イベントが発生します。したがって、アプリケーションの初回起動時には発生していないハンドラ "onBackButton"が呼び出される必要があります。 –

答えて

0

手動でブートストラップ角度を試し、バックボタン機能が正しく機能するかどうか確認してください。
ので、何かのような...

document.addEventListener("deviceready", function() { 
    angular.bootstrap(document, "YourApp"); 
    document.addEventListener('backbutton', onBackButton, false); 

    function onBackButton() 
    { 
     console.log("Back button pressed"); 
    } 
}, false); 
+0

それは働いたが、多くのことを壊した(状態が失われたため)。コルドバは、コードワの活動による自然の活動をサポートしていません。 –

関連する問題