我跟随我的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中看到日志。
这根据文档应该覆盖默认行为,但显然当我单击后退按钮时,它不仅会触发该函数,还会执行默认行为。 我被带回到我的登录界面,而所描述的行为则是别的。
任何人都可以指出我正确的方向,让我知道我做的不对。
答案 0 :(得分:6)
不确定它是否能解决这个问题,但你可以检查onBackKeyDown函数是否将事件作为第一个参数。如果是,那么尝试类似:
function onBackKeyDown(evt) {
evt.preventDefault();
evt.stopPropagation();
angular.element('[ng-controller=NavCtrl]').scope().back();
}