1

我有一个使用 Cordova 和 PhoneJS 的通用应用程序,并使用适用于 iOS、Android 和 Windows Phone 的 Phonegap 构建它。Windows Phone 样式删除视图上的后退按钮以向后导航。当我按下硬件后退按钮时,应用程序退出。

这就是为什么我要覆盖后退按钮功能。我发现很多文档指出您需要在 Cordova 加载后在 ' deviceready ' 上的 ' backbutton ' 事件上进行注册。

' on load ' 和 ' deviceready ' 事件被成功调用。问题是没有调用后退按钮事件并且应用程序仍然退出。

版本:

npm list -g cordova
...\AppData\Roaming\npm
└─┬ phonegap@5.3.7
  └── cordova@5.4.0

设备:

  • 微软 Lumia 640 LTE
  • Windows 电话 8.1 更新 2

代码:

// Is invoked
function onLoad() {
    document.addEventListener("deviceready", onDeviceReady, false);
}

// Is invoked
function onDeviceReady() {
    document.addEventListener("backbutton", onBackButton, false);
}

// Is not invoked
function onBackButton(){
  debugger;
}
<body onload="onLoad()">
</body>

4

1 回答 1

0

我发现包含的PhoneJS使用WinJS。有了它,我可以设置“ onbackclick ”操作。

function onLoad() {
    document.addEventListener("deviceready", onDeviceReady, false);
}

function onDeviceReady() {
    // Check if WinJS api is available
    if(WinJS){
      WinJS.Application.onbackclick = function (e) {
        MyApp.app.navigationManager.back();

        // Return true otherwise it will close app.
        return true;
      }
    }
}
<body onload="onLoad()">
</body>

于 2015-11-10T07:52:29.580 回答