2014-12-14 11 views
14
tarafından

yüklü cordova cihaz eklentisi: Nasıl iyonik çerçevesinde cihaz UUID almak için

sudo cordova plugin add org.apache.cordova.device 

sonra ngCordova indirilen ve js klasörüne de ng-cordova.min.js dahil ve ayrıca index.html

dahil

sonraki

şöyle

angular.module('starter', ['ionic', 'starter.controllers','ngCordova']) 

sonra kontrolörüne dahil aşağıdaki gibi ngCordova enjekte ne yaptım

angular.module('starter.controllers', []) 

.controller('AppCtrl', function($scope, $ionicModal, $timeout, $ionicPlatform,$cordovaDevice) 
but still getting the following errors 

ReferenceError: device is not defined 
at Object.getUUID (http://localhost:8100/js/ng-cordova.min.js:1:14929) 
at new <anonymous> (http://localhost:8100/js/controllers.js:27:26) 
at invoke (http://localhost:8100/lib/ionic/js/ionic.bundle.js:11591:17) 
at Object.instantiate (http://localhost:8100/lib/ionic/js/ionic.bundle.js:11602:23) 
at http://localhost:8100/lib/ionic/js/ionic.bundle.js:14906:28 
at updateView (http://localhost:8100/lib/ionic/js/ionic.bundle.js:42986:30) 
at eventHook (http://localhost:8100/lib/ionic/js/ionic.bundle.js:42933:17) 
at Scope.$broadcast (http://localhost:8100/lib/ionic/js/ionic.bundle.js:20605:28) 
at $state.transition.resolved.then.$state.transition (http://localhost:8100/lib/ionic/js/ionic.bundle.js:34122:22) 
at wrappedCallback (http://localhost:8100/lib/ionic/js/ionic.bundle.js:19197:81) 

Şimdi neyin yanlış gittiğini söyleyebilir misiniz?

Eğer UUID aygıtını okumak için başka bir yol varsa, bana yönünü göster.

cevap

8

Kullanım ngCordova and cordova Device plugin:

cordova eklenti org.apache.cordova.device eklemek

module.controller('MyCtrl', function($scope, $cordovaDevice) { 
    var uuid = $cordovaDevice.getUUID(); 
}); 
9

Eğer '> iyonik sunum' kullanıyorsanız, cihaz "tanımlanmamış" olacaktır. Bir emülatör veya fiziksel cihazda deneyin.

+1

iyi bir nokta - bu muhtemelen bir çok insan için çok açık olmayacaktır (kendim de dahil olmak üzere) – Zabs

1

http://forum.ionicframework.com/t/ionic-cordova-device-uuid/13652

Sen may ionic.Platform.ready() geri arama işlevi içinde sadece erişim cordova eklentileri: Cordova sonra web uygulaması yüklenmesi biraz daha uzun sürebilir eklentileri çünkü

angular.module('starter.controllers', []) 

.controller('DashCtrl', function ($scope, $state, $cordovaDevice) { 

var init = function() { 
    console.log("initializing device"); 
    try { 

    $scope.uuid = $cordovaDevice.getUUID(); 

    } 
    catch (err) { 
    console.log("Error " + err.message); 
    alert("error " + err.$$failure.message); 
    } 

}; 

ionic.Platform.ready(function(){ 
    init(); 
}); 

}) 

budur. İyonik.Platform.ready() geri çağrısı, Cordova tam yüklü olduğunda veya hemen yüklenmişse hemen tetiklenir.

13

Evet, başka bir yol var. Bunun için ngCordova'a ihtiyacınız yok.

Eklentiyi cordova plugin add org.apache.cordova.device eklediğinizde, uygulamanıza yüklenir ve bu nedenle istediğiniz bilgi window.device.

Kodun herhangi bir yerinde cihaz uuid'i almak istiyorsanız, window.device.uuid numaralı telefonu aramanız yeterlidir.

en kısa sürede uygulama başlar başlamaz isterseniz, o zaman kullanın:

ionic.Platform.ready(function(){ 
    console.log(window.device.uuid); 
}); 
1

bugün saatlerce bu mücadele oldu mu, ile cordova cihaz eklentisini yükleyin:

cordova plugin add cordova-plugin-device

marka Ayrıca yapılandırmanızda eklentiye de başvurduğunuzdan emin olun.xml:

<plugin name="cordova-plugin-device" source="npm" spec="~1.1.1" />

2

Sadece kendi platform.ready işlevinde ionic.Platform.device() kullanabilirsiniz. bu birisinin yardımcı olacağını umuyorum :).

Saygılarımızla. Bu şekilde çalışırsa v2 içinde