2014-01-06 40 views
3

我是新手,當涉及到Phonegap發展。我一直在努力幾天,現在有一個簡單的應用程序,它使用InAppBrowser在應用程序內打開一個URL。我想出了以下代碼,它成功加載了我試圖在應用程序中顯示的頁面。Phonegap負荷InAppBrowser和網址更改

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<meta name="format-detection" content="telephone=no" /> 
<script type="text/javascript" charset="utf-8" src="js/cordova.js"></script> 
<script type="text/javascript" charset="utf-8" src="js/index.js"></script> 
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> 
<title>Riderunner</title> 

<script type="text/javascript" charset="utf-8"> 

        // Wait for Cordova to load 
    document.addEventListener("deviceready", onDeviceReady, false); 

    var ref= null; 

    function iabLoadStart(event) { 
      alert(event.type + ' - ' + event.url); 
    } 

    function iabLoadStop(event) { 
     alert(event.type + ' - ' + event.url); 
    } 

    // Cordova is ready 
    function onDeviceReady() { 
     ref = window.open('http://google.com', '_self', 'location=yes'); 
     ref.addEventListener('loadstart', iabLoadStart); 
     ref.addEventListener('loadstop', iabLoadStop); 
    } 

</script> 

</head> 
<body onload="onDeviceReady()"> 
</body> 
</html> 

現在我面臨的問題是loadstart事件不會觸發。我的意思是說,我把它放在聽衆不會彈出的警報。其次,我想知道,雖然在InAppBrowser中工作,我們可以檢測到URL更改或有任何事件來檢測URL?我想在設備瀏覽器(用戶選擇)中打開一些特定的網址,或者在應用內顯示它們。 感謝您的任何幫助。

回答

2

變化ref = window.open('http://google.com', '_self', 'location=yes');

ref = window.open('http://google.com', '_blank', 'location=yes'); 

無需對身體的onload調用onDeviceReady()。

+0

刪除身體的onload,現在沒有顯示。 –

+0

我該如何檢查url是否被更改?我的意思是當url的某個部分(子字符串)匹配時,我想使用_blank參數? –

+0

希望你在js文件夾中有一個cordova.js文件。 我做了三個改變,它的工作。 1)增加了確切的科多瓦路徑。 2)_blank而不是_self。 3)刪除onload =「onDeviceReady()」 –

0
Please try with the below code it will always capture event if url is changed in your browser :- 
    ref = window.open('http://google.com', '_blank', 'location=yes'); 
ref.addEventListener('loadstart', function(event) { 
         var URL=event.url; 
         var n = URL.startsWith("http://XXXXXXXXXXXXXX"); 
        if(n==true){ 
         iabRef.close(); 
         // root reload 
        } 
        });