Javascript 绑定backbutton Intel XDK,甚至在重定向之前

Javascript 绑定backbutton Intel XDK,甚至在重定向之前,javascript,cordova,intel-xdk,Javascript,Cordova,Intel Xdk,上下文 我正在尝试使用Intel XDK模拟网络视图。在阅读一些关于堆栈溢出的文章之前,我了解到更好的归档方法是使用window.location=“url”。它就像一个符咒 问题 现在我想绑定硬件backbutton,这样用户就可以确认是否要关闭应用程序。问题是,只有当window.location未执行时,它才起作用 代码 <!DOCTYPE html> <html> <head> <title>Test</title>

上下文

我正在尝试使用Intel XDK模拟网络视图。在阅读一些关于堆栈溢出的文章之前,我了解到更好的归档方法是使用
window.location=“url”。它就像一个符咒

问题

现在我想绑定硬件backbutton,这样用户就可以确认是否要关闭应用程序。问题是,只有当
window.location
未执行时,它才起作用

代码

<!DOCTYPE html>
<html>
<head>
    <title>Test</title>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <script src="cordova.js"></script>
    <script>
        window.location = "https://google.com";

        var tried = false;  
        document.addEventListener("backbutton", backButton, false);
        function backButton(){
            if (tried){
                navigator.app.exitApp();
            }
            else {
                alert('TEST: Next time APP should close');
                tried = !tried;
            }
        }
    </script>    
</head>
<body>
</body>
</html>

试验
window.location=”https://google.com";
var=false;
文件。添加了文本列表(“backbutton”,backbutton,false);
函数backButton(){
如果(尝试){
navigator.app.exitApp();
}
否则{
警报(“测试:下次应用程序应关闭”);
试过了=!试过了;
}
}
结果

注释
窗口位置

正在执行
window.location


谢谢

每个页面都有自己的javascript,如果切换页面,所有javascript都将丢失

如果要使其正常工作,需要在使用location.href重定向的任何页面上使用相同的backbutton处理程序代码,并且还需要链接cordova.js

这意味着你只能让它在你可以控制他们加载的代码的页面上工作,而不是在谷歌上

如果您想在任何页面上执行此操作,即使在无法控制的页面上,也不能使用cordova javascript代码,因为它将消失,您需要更改cordova java代码控制后退按钮行为的方式,操作完成:

您必须检测
KeyEvent.KEYCODE\u BACK
并显示本机对话框以关闭应用程序