远程加载Cordova / PhoneGap应用程序

时间:2014-05-14 15:23:20

标签: javascript ios cordova

关于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 个答案:

答案 0 :(得分:0)

在添加deviceready事件侦听器之前,不要等待onload触发。我怀疑deviceready已经被解雇了,因此你没有得到你的处理程序。即使没有加载cordova,它也包含即使对于在加载之前注册的侦听器也要触发的逻辑。

此外,cordova将添加脚本标记以加载其自己的依赖项,因此您只需要包含cordova.js脚本标记。