【发布时间】:2015-07-10 21:34:24
【问题描述】:
根据我在deviceready 事件之后使用false 的参数将事件侦听器附加到backbutton 的文档,我将覆盖我的设备后退按钮。
我是这样做的:
// Smart App object
define([
'routes',
'cordova',
'angular',
'angularRoute',
'angularResource',
'angularTouch',
'config',
'controllers',
'services',
'directives',
'helpers'
], function(appRoute) {
var oApp = {
_app: {},
init: function() {
console.log('init');
document.addEventListener('deviceready', this.onDeviceReady, false);
},
onDeviceReady: function() {
console.log('ok device ready');
document.addEventListener('backbutton', function() {
console.error('deviceback start');
angular.element('.ng-scope').scope().back();
console.error('deviceback end');
}, false);
// ...
}
// ...
我已经疯狂地弄清楚为什么点击设备按钮不会触发我附加的这个backbutton 事件,我什至没有在控制台中看到console.error 消息。我现在正在 Android 上进行测试,我还没有在任何其他手机操作系统上进行测试。
console.log('ok device ready') 确实触发并且我的应用程序正常运行,设备 backbutton 被覆盖,因为它的默认功能没有发生,但是如上所述,我的功能也没有发生。
我阅读了其他 stackoverflow topcis,他们说 Cordova 版本得到了修复,但我的 Cordova 版本远远落后于他们,我的 .cordova/config.json 文件告诉我:
{
"lib": {
"www": {
"id": "com.tigoenergy.smart",
"version": "3.5.0"
}
}
}
它是3.5,然后我的info.txt 告诉我它是5.0.0:
Node version: v0.10.25
Cordova version: 5.0.0
Config.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<!-- config.xml reference: https://build.phonegap.com/docs/config-xml -->
<widget xmlns = "http://www.w3.org/ns/widgets"
xmlns:gap = "http://phonegap.com/ns/1.0"
有人有什么想法吗?
【问题讨论】:
-
您是否能够准备好设备的 console.logs 并启动 deviceback。
-
感谢@DeepMehta 设备就绪确实显示在控制台中。 deviceback 开始或完成不显示:(
-
尝试以通常的方式实现。通常它应该工作。我不明白为什么你的代码不起作用..
-
尝试使用模拟器或其他设备。
标签: javascript android cordova