2016-10-11 94 views
4

语境绑定后退按钮英特尔XDK,甚至重定向

我试图模拟使用英特尔XDK网页视图之前。在阅读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

谢谢!

回答

1

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

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

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

如果您想在任何页面上执行此操作,即使在您无法控制的页面上,也无法使用cordova javascript代码,因为它会消失,您需要更改cordova java代码如何控制背面按钮的行为,它的完成on this method

你必须检测KeyEvent.KEYCODE_BACK,并显示出本地对话框,关闭应用程序有