Cordova Windows手机后退按钮覆盖未触发

时间:2015-11-09 14:23:10

标签: javascript cordova windows-phone phonejs

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

这就是我想要覆盖后退按钮功能的原因。 我找到了很多文档,说明你需要注册' 后退按钮'事件在' deviceready ' Cordova加载后。

<#> 正在加载&#39;和&#39; deviceready &#39;事件被成功调用。 问题是没有调用后退按钮事件,应用程序仍然退出。

版本:

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

设备:

  • Microsoft Lumia 640 LTE
  • Windows Phone 8.1 Update 2

代码:

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

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

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

1 个答案:

答案 0 :(得分:0)

我发现所包含的 PhoneJS 使用 WinJS 。 有了这个,我可以设置&#39; onbackclick &#39;动作。

&#13;
&#13;
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;
      }
    }
}
&#13;
<body onload="onLoad()">
</body>
&#13;
&#13;
&#13;