首页 文章

远程加载Cordova / PhoneGap应用程序

提问于
浏览
4

关于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

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

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

相关问题