javascript – 在重定向之前绑定英特尔XDK的后退按钮

上下文

我正在尝试使用Intel XDK模拟WebView.在阅读Stack Overflow上的一些帖子之前,我读到了更好的存档方法是使用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

enter image description here

执行window.location

enter image description here

谢谢!

解决方法

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

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

这意味着您只能在可以控制其加载的代码页面上使用它,而不是在谷歌上.

如果你想在任何页面上进行,即使在你无法控制的页面上,那么你也不能使用cordova javascript代码,因为它会消失,你需要改变cordova java代码如何控制后退按钮的行为,它是完成on this method

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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...