绑定后退按钮 Intel XDK,甚至在重定向之前

Bind backbutton Intel XDK, even before a redirect

上下文

我正在尝试使用 Intel XDK 模拟 WebView。在 Stack Overflow 上阅读一些 post 之前,我读到更好的存档方法是使用 window.location = "url";。它就像一个魅力。

问题

现在我想绑定硬件后退按钮,让用户可以确认是否要关闭应用程序。问题是它仅在 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

正在执行window.location

谢谢!

每个页面都有自己的java脚本,如果切换页面,所有java脚本都将丢失。

如果你想让它工作,你需要在使用 location.href 重定向的任何页面上具有相同的后退按钮处理程序代码,并且你需要 link cordova.js也是。

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

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

您必须检测 KeyEvent.KEYCODE_BACK 并显示一个本机对话框以关闭那里的应用程序