PhoneGap 3.1构建设备未定义

时间:2014-01-17 14:30:21

标签: android ios extjs cordova

我有一个sencha touch项目。我用phonegap 2.9构建并且工作正常device.uuid返回设备ID。当我尝试使用3.1 device.uuid构建“设备未定义”错误时。 我的config.xml

<preference name="phonegap-version" value="3.1.0" />
<preference name="stay-in-webview" value="true" />
<access origin="*" />

<gap:plugin name="com.phonegap.plugins.barcodescanner" />
<gap:splash src="images/splash.png" />

<feature name="http://api.phonegap.com/1.0/camera" />

<feature name="Device">
  <param name="android-package" value="org.apache.cordova.device.Device" />
</feature>

我的设备ID请求:

 try
{
   Ext.getCmp('txtUUID').setValue(device.uuid);
}
catch(err)
{alert(err);

    Ext.getCmp('txtUUID').setValue('ID Okunamadı!');

}

我需要帮助。如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

我假设您正在使用phonegap构建,对吗?

在phonegap 3中,默认情况下不再包含核心api,现在是插件,所以你必须明确添加你正在使用的任何api。

在将以下行添加到config.xml后,您应该能够读取UUID:

<gap:plugin name="org.apache.cordova.device" />

您还可以删除以下行,因为API功能现在由新的插件格式处理。

无用的行:

<feature name="http://api.phonegap.com/1.0/camera" />
<feature name="Device">
  <param name="android-package" value="org.apache.cordova.device.Device" />
</feature>

答案 1 :(得分:1)

将您的注册码放在DeviceReady功能

var platform = null;
        document.addEventListener("deviceready", onDeviceReady, false);
        function onDeviceReady() {
          platform = device.platform;
          //alert(platform);
          $("#app-status-ul").append('<li>'+ platform +'</li>');
          try 
            { 
                pushNotification = window.plugins.pushNotification;
          $("#app-status-ul").append('<li>registering ' + device.platform + '</li>');
                if (device.platform == 'android' || device.platform == 'Android' ||
                        device.platform == 'amazon-fireos' ) {
        pushNotification.register(successHandler, errorHandler, {"senderID":"860557673192","ecb":"onNotification"});        // required!
                } else {
                    pushNotification.register(tokenHandler, errorHandler, {"badge":"true","sound":"true","alert":"true","ecb":"onNotificationAPN"});    // required!
                }
            }
            catch(err) 
            { 
                txt="There was an error on this page.\n\n"; 
                txt+="Error description: " + err.message + "\n\n"; 
                alert(txt); 
            } 
        }