2014-12-14 2 views
14
에 의해

설치 코르도바 장치 플러그인 : 어떻게 이온 프레임 워크에서 장치의 UUID를 얻을 수

sudo cordova plugin add org.apache.cordova.device 

다음 ngCordova을 다운로드 JS 폴더에 NG-cordova.min.js을 포함하고 또한 index.html을

에 포함

다음

다음과 같이

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

다음 제어기에 포함 된 다음 ngCordova을 주입 제가 않았다

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) 

지금 무엇이 잘못되었는지 말할 수 있습니까?

장치 UUID를 읽는 다른 방법이 있다면 나에게 방향을 제시하십시오.

답변

8

사용 ngCordova and cordova Device plugin :

코르도바 플러그인 org.apache.cordova.device 추가는

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

'ionic serve'를 사용하는 경우 기기가 '정의되지 않음'으로 표시됩니다. 에뮬레이터 또는 물리적 장치를 사용해보십시오.

+1

좋은 지적 - 이것은 아마도 많은 사람들에게 (자신을 포함해서)별로 분명하지 않을 것입니다. – Zabs

1

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

당신 일지 모른다 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(); 
}); 

}) 

이입니다. ionic.Platform.ready() 콜백은 Cordova가 완전히로드되었거나 이미로드 된 즉시 트리거됩니다.

13

예, 다른 방법이 있습니다. 이렇게하려면 ngCordova이 필요하지 않습니다.

플러그인을 추가하면 cordova plugin add org.apache.cordova.device이 애플리케이션에로드되므로 원하는 정보가 window.device에 있습니다.

코드의 어느 곳에서나 장치 uuid를 얻으려면 window.device.uuid으로 전화하면됩니다.

당신이 바로 앱을 시작으로 사용할 경우, 사용

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

오늘 시간이 고민되었습니다와 코르도바 장치 플러그인을 설치 :

cordova plugin add cordova-plugin-device

메이크업을 또한 설정에서 플러그인을 참조해야합니다.XML :

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

2

당신은 당신의 platform.ready 기능에 ionic.Platform.device()를 사용할 수 있습니다.

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

누군가가 도움이되기를 바랍니다. :).

감사합니다. 그것은 다음과 같이 작동 v2를 내

관련 문제