在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中显示它们。
谢谢你的帮助。
答案 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
}
});