关于Cordova 3.4:
我在互联网上遇到了关于使用cordova / phonegap远程加载网页的各种帖子,我无法让它工作 . 我在github和其他各种帖子上读过了问题#28和#29 .
我通过config.xml中的内容设置直接加载url(下面的示例在我的本地开发机器上,但在我的公司防火墙中使用哪个url并不重要) . 我也试过对URL进行window.location,但这也不起作用 .
<content src="http://192.168.96.97:3004/#reference" />
页面加载正常,但deviceready事件不会触发 . cordova应用程序本地的www文件可以工作,只是没有远程 .
我明白了:
deviceready has not fired after 5 seconds. cordova.js?body=1:1117
Channel not fired: onCordovaInfoReady cordova.js?body=1:1110
Channel not fired: onCordovaConnectionReady cordova.js?body=1:1110
这是我的代码:
<html><head>
<title>Cordova Test</title>
<script src="cordova.js"></script>
<script src="cordova_plugins.js"></script>
<script src="plugins/org.apache.cordova.device/www/device.js"></script>
<script src="plugins/org.apache.cordova.geolocation/www/Coordinates.js"></script>
<script src="plugins/org.apache.cordova.geolocation/www/PositionError.js"></script>
<script src="plugins/org.apache.cordova.geolocation/www/Position.js"></script>
<script src="plugins/org.apache.cordova.geolocation/www/geolocation.js"></script>
<script src="plugins/org.apache.cordova.network-information/www/network.js"></script>
<script src="plugins/org.apache.cordova.network-information/www/Connection.js></script>
<script>
// Wait for device API libraries to load
function onLoad() {
alert("onload..."); // this displays
document.addEventListener("deviceready", onDeviceReady, false);
}
// device APIs are available
function onDeviceReady() { // this never fires
// Now safe to use device APIs
alert("deviceready...");
console.log("deviceready...");
}
</script>
</head>
<body onload="onLoad();" style="">
hello! :)
</body></html>
谢谢!
1 回答
在添加deviceready事件侦听器之前,不要等待onload触发 . 我怀疑deviceready已经被解雇了,因此你没有调用你的处理程序 . 即使未加载cordova,它也包含即使对于在加载之前注册的侦听器也要触发的逻辑 .
此外,cordova将添加脚本标记以加载其自己的依赖项,因此您只需要包含cordova.js脚本标记 .