3

私はindex.jsとして以下を持っています(phonegapの初期化に使用されます)

 function onBackKeyDown() {
     angular.element('[ng-controller=NavCtrl]').scope().back();
 }


var app = {
// Application Constructor
     initialize: function() {
         this.bindEvents();
     },

     // Bind any events that are required on startup. Common events are:
     // 'load', 'deviceready', 'offline', and 'online'.
     bindEvents: function() {
        document.addEventListener('load', this.onLoad, false);
        document.addEventListener('deviceready', this.onDeviceReady, false);
        window.addEventListener("orientationchange", orientationChange, true);
     },
     onLoad: function() {

     },


    onDeviceReady: function() {
        document.addEventListener("backbutton", onBackKeyDown, false);
    }
};

これは技術的には、戻るボタンが押されたときに関数 onBackKeyDown を実行する必要があります。logcat でログを確認できます。

ドキュメントによると、これはデフォルトの動作をオーバーライドする必要がありますが、戻るボタンをクリックすると、関数が起動するだけでなく、デフォルトの動作も実行されるようです。ログイン画面に戻りますが、説明されている動作は別のものです。

誰でも私を正しい方向に向けて、私が正しくしていないことを教えてください。

4

1 に答える 1

6

Not sure if it will do the trick but you could check if the onBackKeyDown function get an event as first parameter. If yes then try something like :

function onBackKeyDown(evt) {
  evt.preventDefault();
  evt.stopPropagation();
  angular.element('[ng-controller=NavCtrl]').scope().back();
 }
于 2013-09-06T17:35:52.300 に答える