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 回答