2016-10-11 2 views
4

ContextBind Intel XDK Backbutton, noch bevor eine Umleitung

Ich versuche, ein WebView mit Intel XDK zu simulieren. Bevor ich einen Beitrag über Stack Overflow gelesen habe, habe ich gelesen, dass die beste Möglichkeit, dies zu archivieren, ein window.location = "url"; ist. Es hat wie ein Zauber funktioniert.

Problem

Jetzt möchte ich die Hardware-Backbutton binden, so kann der Benutzer bestätigen, er will oder nicht, die App zu schließen. Das Problem ist, dass es nur funktioniert, wenn die window.location nicht ausgeführt wird.

-Code

<!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> 

Ergebnisse

kommentierte window.location

enter image description here

Ausführen window.location

enter image description here

Vielen Dank!

Antwort

1

Jede Seite hat ihr eigenes Javascript, wenn Sie die Seite wechseln, wird das gesamte Javascript verloren gehen.

Wenn Sie möchten, dass es funktioniert, müssen Sie den gleichen Backbutton-Handler-Code auf jeder Seite haben, auf die Sie mit location.href umleiten, und Sie müssen auch cordova.js verknüpfen.

Das bedeutet, dass Sie nur auf Seiten arbeiten können, die Sie den Code steuern können, den sie laden, nicht auf Google.

Wenn Sie es auf jeder Seite tun möchten, auch auf Seiten, die Sie nicht kontrollieren können, dann können Sie nicht Cordova JavaScript-Code verwenden, da es verschwinden wird, müssen Sie ändern, wie cordova Java-Code die Rückseite steuert Schaltfläche Verhalten, ist es on this method getan:

Sie werden die KeyEvent.KEYCODE_BACK und zeigen einen nativen Dialog erkennen müssen die App dort

schließen