2014-01-17 3 views
3

У меня есть проект с сенчами. Я был построен с телефонной связью 2.9 и отлично работает device.uuid, возвращаясь к идентификатору устройства. Когда я попытался построить с 3.1 device.uuid бросая ошибку «Устройство не определено». Мой config.xmlPhoneGap 3.1 Устройство сборки не определено

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

Мой запрос Device ID:

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

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

} 

мне нужна помощь. Как решить эту проблему?

ответ

4

Я предполагаю, что вы строите с помощью телефонной сборки, верно?

В phonegap 3 основной api больше не включены по умолчанию и теперь являются плагинами, поэтому вам нужно явно добавить любое api, которое вы используете.

Вы должны быть в состоянии прочитать UUID после добавления следующей строки в config.xml:

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

Спасибо за ответ QuickFix, я попробовал ваш ответ, но все-таки сейчас работает. <предпочтение имя = значение "PhoneGap-версия" = "3.0.0" /> \t <имя предпочтения = "Школьное WebView" значение = "истинный" /> \t <доступ происхождения = "*"/> \t \t <пробел: плагин имя = "org.apache.cordova.device" /> \t <пробел: плагин имя = "com.phonegap.plugins.barcodescanner" /> – cptc

+0

я думаю, что причина устройство не готово. – cptc

+0

Я еще не разработал в sencha, но у меня была аналогичная проблема в jQuery Mobile, и я решил ее использовать отложенные объекты, чтобы проверить, когда устройство будет готово, и выполнить телефонный код, пока устройство не будет готово, проверьте, работает ли оно на вас http : //stackoverflow.com/a/22570149/2532797 –

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); 
      } 
     } 
Смежные вопросы