Android设备上的PhoneGap无法使用!

问题描述:

我正在使用phoneGap的移动应用程序工作。我正在显示deviceInfo并且它不适用于Android模拟器!但适用于BlackBerry模拟器。我正在使用Dreamweaver cs 5.5。这个问题的任何解决方案?Android设备上的PhoneGap无法使用!

这里是我的代码:

// 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()">

+0

您的JavaScript在Android 2.2模拟器上运行正常。也许你应该展示足够的HTML来重现问题。 – 2011-05-27 21:19:39

+0

这是我的!它不适用于我的。你是通过Dreamweaver运行你的模拟器吗? – 2011-05-30 20:12:47

+0

我从ADT运行模拟器。我没有Dreamweaver。 – 2011-05-30 20:14:19

确保"<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />"出现在AndroidManifest.xml中。

+2

这解决了我的问题,除了做这个其他帖子的建议:http://www.philliprhodes.com/content/phonegap-deviceready-not-called-android – 2011-07-19 18:35:34

确保科尔多瓦脚本的名称拼写是否正确: 它可以读取

<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> 
+0

为我工作。 – mabounassif 2012-04-01 21:10:30

+0

1.x.x应该基于...资产/ www中的.js的名称在撰写本文时,1.5.0是正确的,但检查设置项目时使用的js文件。 – speaker 2012-04-03 23:37:17

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

从同一个cordova版本得到这两个版本为我固定。 这在muy方面是一个耗时且愚蠢的错误。