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