javascript - 绑定(bind)后退按钮 Intel XDK,甚至在重定向之前

标签 javascript cordova intel-xdk

上下文

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

问题

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

enter image description here

执行 window.location

enter image description here

谢谢!

最佳答案

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

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

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

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

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

关于javascript - 绑定(bind)后退按钮 Intel XDK,甚至在重定向之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39972042/

相关文章:

ios - PhoneGap 3 BarcodeScanner 和未定义错误

android - HTML 输入类型 ="file"在 Cordova 中不起作用

javascript - 使用nth-child制作国际象棋图案

javascript - 选择特定的 div 并使用 Angular 的 jqLit​​e 获取 outerHeight

ios - 如何为 ionic 框架编写自定义/自己的插件

git - INTEL-XDK 和源代码/版本控制 - 它是否受支持?

javascript - Javascript 的打开语法是什么?

javascript - 如何使 Slick slider 不那么不稳定并在所有宽度下工作?

javascript - 在 mouseup 事件处理程序中取消单击事件

android - FileTransfer Cordova下载路径