首页 文章

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

提问于
浏览
1

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

这就是我想要覆盖后退按钮功能的原因 . 我发现了很多文档,说明你需要在Cordova加载后在'backbutton ' event on ' deviceready'上注册 .

“on load ' and ' deviceready”事件已成功调用 . 问题是没有调用后退按钮事件,应用程序仍然退出 .

Versions:

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

Device:

  • Microsoft Lumia 640 LTE

  • Windows Phone 8.1 Update 2

Code:

// 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>

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>
    

相关问题