2014-12-14 10 views
14

jonowej urządzenie zainstalowane wtyczki Cordova przez:Jak uzyskać UUID urządzenia w ramach

sudo cordova plugin add org.apache.cordova.device 

następnie pobrać ngCordova i zawarte w NG-cordova.min.js js do folderu, a także zawarte w index.html

obok co zrobiłem jest wstrzykiwany ngCordova następująco

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

następnie uwzględnione w kontrolerze następująco

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) 

Czy możesz mi teraz powiedzieć, co poszło nie tak?

Jeśli istnieje inny sposób odczytania identyfikatora UUID urządzenia, wskaż mi kierunek.

Odpowiedz

8

Zastosowanie ngCordova and cordova Device plugin:

Cordova plugin dodać org.apache.cordova.device

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

Jeśli używasz "> ionic serve", urządzenie będzie "nie zdefiniowane". Wypróbuj emulator lub urządzenie fizyczne.

+1

dobry punkt - bo to prawdopodobnie nie będzie oczywiste dla wielu osób (w tym dla mnie) – Zabs

1

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

Użytkownik może tylko dostęp Cordova wtyczek wewnątrz ionic.Platform.ready() funkcji zwrotnej:

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(); 
}); 

}) 

To dlatego Cordova wtyczek zająć trochę więcej czasu, aby załadować następnie aplikację internetową. Wywołanie ionic.Platform.ready() jest wywoływane, gdy tylko Cordova zostanie w pełni załadowana lub natychmiast, jeśli jest już załadowana.

13

Tak, jest inny sposób. Po prostu nie potrzebujesz do tego ngCordova.

Po dodaniu wtyczki cordova plugin add org.apache.cordova.device jest ona ładowana do aplikacji, dlatego potrzebne informacje mają numer window.device.

Jeśli chcesz uzyskać dostęp do urządzenia w dowolnym miejscu kodu, wystarczy zadzwonić pod numer window.device.uuid.

Jeśli chcesz jak najszybciej uruchamia aplikację, a następnie użyć:

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

zmaga się z tym przez kilka godzin dzisiaj zainstalować wtyczkę urządzenia Cordova z:

cordova plugin add cordova-plugin-device

markę upewnij się, że odwołasz się do wtyczki w swojej konfiguracji.xml:

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

2

mógłby po prostu użyć ionic.Platform.device() w funkcji platform.ready.

$ionicPlatform.ready(function { 
    console.log(ionic.Platform.device());// returns an object containing device uuid,version, platform, manufacturer ... 
}); 

mam nadzieję, że to pomoże komuś :).

Pozdrawiam.

Powiązane problemy