2014-12-14 6 views
14

installato plug dispositivo Cordova da:Come ottenere l'UUID dispositivo in quadro ionico

sudo cordova plugin add org.apache.cordova.device 

poi scaricato ngCordova e comprendeva NG-cordova.min.js nella cartella js e comprendeva anche in index.html

prossima cosa ho fatto viene iniettato ngCordova come segue

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

poi incluso nel controllore come segue

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) 

Ora puoi dirmi cosa è andato storto?

Se c'è un altro modo per leggere l'UUID del dispositivo, mostratemi la direzione.

risposta

8

Uso ngCordova and cordova Device plugin:

Cordova plug aggiungere org.apache.cordova.device

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

Se si utilizza '> ionic serve', il dispositivo sarà "non definito". Prova in un emulatore o dispositivo fisico.

+1

buon punto - come questo probabilmente non sarà molto ovvio per molte persone (me compreso) – Zabs

1

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

Si può accedere solo i plugin Cordova all'interno la funzione di callback ionic.Platform.ready():

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

}) 

Questo perché Cordova plugin prendere un po 'di tempo per caricare quindi l'applicazione web. Il callback ionic.Platform.ready() viene attivato non appena Cordova si carica completamente o immediatamente se è già caricato.

13

Sì, c'è un altro modo. Non hai proprio bisogno di ngCordova per questo.

Quando si aggiunge il plug-in cordova plugin add org.apache.cordova.device, viene caricato nell'applicazione e pertanto le informazioni desiderate sono window.device.

Se si desidera ottenere il dispositivo uuid in qualsiasi punto del codice, è sufficiente chiamare window.device.uuid.

Se si desidera, non appena l'applicazione si avvia, quindi utilizzare:

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

hanno lottato con questo per ore di oggi, installare il plugin dispositivo Cordova con:

cordova plugin add cordova-plugin-device

make certo di fare riferimento anche al plugin nella tua configurazione.xml:

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

2

Si potrebbe utilizzare ionic.Platform.device() nella funzione platform.ready.

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

spero che questo aiuti qualcuno :).

Saluti.