【发布时间】:2015-04-10 12:01:16
【问题描述】:
我正在使用 Cordova/PhoneGap 开发我的第一个 Android AngularJS 移动应用程序。我在脚本文件中添加了以下代码,但无法捕获后退按钮事件。这是我的 scripts.js 中的内容:
var app = angular.module('QFA', []);
app.controller('QFAinit', function( $scope, $window ) {
document.addEventListener("deviceready", onDeviceReady(), false);
function onDeviceReady() {
$window.alert("Device Ready-1");
document.addEventListener("backbutton", onBackKeyDown, false);
$window.alert("Device Ready-2");
function onBackKeyDown() {
$window.alert("Inside onBackKeyDown1");
}
}
});
我这样称呼它:
<body ng-controller="QFAinit">
当我运行应用程序时,我确实收到“设备就绪 1”和“设备就绪 2”警报。这意味着 deviceready 事件被正确触发,并且还尝试了后退按钮。但是,当我按下后退按钮时,没有任何反应,而是执行默认行为,即应用程序退出。
另一方面,如果我在 eventlistener 命令上将 onBackKeyDown 替换为 onBackKeyDown(),那么我会在加载应用程序时收到“Inside onBackKeyDown1”警报,就在上述两个警报之后。但是一旦加载了应用程序,后退按钮功能就不存在了。
我怎样才能做到这一点?
更新
我意识到我需要包含 cordova.js 来捕获后退按钮。一旦我添加了它,后退按钮就会被困住。但是,结果我得到了一个损坏的应用程序,如下所示:
我还尝试将 jQuery 的版本从 2.1 更改为 1.11、1.10 和 1.4.5,但这没有任何影响。事实上,即使我删除了 jQuery,我仍然会得到损坏的界面。
【问题讨论】:
-
括号是始终显示还是仅在您按下后退按钮时显示?您的控制台中有错误,我建议您安装 Eclipse 以从 logcat 中读取,这样您就可以知道您的应用程序出了什么问题。
-
如果我添加cordova.js,它们总是会显示。当 cordova.js 被删除时,它们就会消失。 Eclipse.....另一个学习练习:-(
标签: javascript android angularjs cordova phonegap-plugins