Phonegap加载InAppBrowser和url更改

时间:2014-01-06 07:32:35

标签: javascript html5 cordova

Phonegap开发方面,我是新手。我已经开展了几天的工作,现在有了一个简单的应用程序,可以使用InAppBrowser在app中打开一个url。我已经提出了以下代码,它们成功加载了我想在应用程序中显示的页面。

<!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(用户选择),否则在app中显示它们。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

ref = window.open('http://google.com', '_self', 'location=yes');更改为

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

无需在body onload上调用onDeviceReady()。

答案 1 :(得分: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
                     }
                  });