【问题标题】:PhoneGap on Android deviceready not working!Android 设备上的 PhoneGap 无法正常工作!
【发布时间】:2011-05-27 18:40:48
【问题描述】:

我正在使用 phoneGap 开发移动应用程序。我正在显示 deviceInfo,但它不适用于 Android 模拟器!但适用于黑莓模拟器。我正在使用 Dreamweaver cs 5.5。这个问题有解决办法吗?

这是我的代码:

 // invoked when device is ready 
    function deviceInfo() {
        document.getElementById('window.device.platform').innerHTML = 'window.device.platform = ' + window.device.platform;
        document.getElementById('window.device.version').innerHTML  = 'window.device.version  = ' + window.device.version;
        document.getElementById('window.device.uuid').innerHTML     = 'window.device.uuid     = ' + window.device.uuid;
        document.getElementById('window.device.phonegap').innerHTML = 'window.device.phonegap = ' + window.device.phonegap;

        navigator.network.isReachable("phonegap.com", function(reachability) {
            var states = {};
            states[NetworkStatus.NOT_REACHABLE]                      = 'No network connection';
            states[NetworkStatus.REACHABLE_VIA_CARRIER_DATA_NETWORK] = 'Carrier data connection';
            states[NetworkStatus.REACHABLE_VIA_WIFI_NETWORK]         = 'WiFi connection';
            document.getElementById('networkStatus').innerHTML = 'isReachable = ' + states[reachability];
        }, 
        { isIpAddress: false });        
    }       

    // invoked when application is resumed (brought to foregroud)
    function doResume() {
        console.log('doResume()');
    }

    // invoked when application is paused (sent to background)
    function doPause() {
        console.log('doPause()');
    }

    // register PhoneGap event listeners when DOM content loaded
    function init() {
        console.log('init()');
        document.addEventListener("deviceready", deviceInfo, true); 
        document.addEventListener("resume", doResume, false);
        document.addEventListener("pause", doPause, false);
    }

    function unload() {
        console.log('unload()'); 
    }

    function fail(error) {
        navigator.notification.alert(error, null, "Error");
    }

在我的 HTML 上:<body onload="init()" onunload="unload()">

【问题讨论】:

  • 您的 JavaScript 在 Android 2.2 模拟器上运行正常。也许你应该展示足够多的 HTML 来重现问题。
  • 这太奇怪了!它不适用于我的。您是否通过 Dreamweaver 运行您的模拟器?
  • 我正在从 ADT 运行模拟器。我没有 Dreamweaver。
  • 这很快,意思是你在eclipse上运行的ADT?抱歉,如果我问的是愚蠢的问题,我是移动开发新手。
  • 刚巧在你问的时候打开了。 :-) 是的,ADT 是 Eclipse 的 Android 开发工具插件。

标签: android mobile cordova


【解决方案1】:

确保 cordova 脚本的名称拼写正确: 它可能会读取

<script type="text/javascript" charset="utf-8" src="cordova-1.x.x.js"></script>

应该写在哪里:

<script type="text/javascript" charset="utf-8" src="cordova-1.5.0.js"></script>

【讨论】:

  • 1.xx 应该是根据...assets/www 中的.js 的名称写的,1.5.0 是正确的,但是检查设置时使用的js 文件项目。
【解决方案2】:

确保 "&lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&gt;" 存在于 AndroidManifest.xml 中。

【讨论】:

【解决方案3】:

当我发现我的cordova.js 和cordova.jar 文件的cordova 版本号不匹配时,我可以解决这个问题。

从同一个科尔多瓦版本中获取两者为我修复了它。 在很多方面,这是一个耗时且愚蠢的错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    • 2021-03-01
    • 1970-01-01
    相关资源
    最近更新 更多