关于 Cordova 3.4:
我在互联网上看到过各种关于使用 cordova/phonegap 远程加载网页的帖子,但我无法让它工作。我看过问题#28和 #29在 github 和其他各种帖子上。
我通过 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>
谢谢!
最佳答案
在添加 deviceready 事件监听器之前不要等待 onload 触发。我怀疑 deviceready 已经解雇,因此您没有调用您的处理程序。即使未加载 cordova,它也包含触发逻辑,即使是在加载之前注册的监听器也是如此。
此外,cordova 将添加脚本标签来加载它自己的依赖项,因此您只需要包含 cordova.js 脚本标签。
关于javascript - 远程加载 Cordova/PhoneGap 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23658883/