2014-01-06 43 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 
        } 
        });