如何在ionic framework中获得设备的UUID

通过以下方式安装了cordova设备插件:

sudo cordova plugin add org.apache.cordova.device 

然后下载了ngCordova,并将ng-cordova.min.js包含在js文件夹中,并包含在index.html中

接下来我做的是注入ngCordova如下

 angular.module('starter', ['ionic', 'starter.controllers','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的方法,请告诉我它的方向。

Solutions Collecting From Web of "如何在ionic framework中获得设备的UUID"

是的,还有另一种方法。 你只是不需要这个ngCordova

当你添加插件cordova plugin add org.apache.cordova.device它被加载到你的应用程序,因此你想要的信息是在window.device

如果你想在代码中的任何地方获得设备uuid,你只需要调用window.device.uuid

如果你想要一旦应用程序启动,然后使用:

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

如果您使用“>离子发球”,设备将是“未定义的”。 尝试在模拟器或物理设备。

使用ngCordova和cordova设备插件 :

cordova插件添加org.apache.cordova.device

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

在V2内,它的工作原理是这样的:

 import { Device } from 'ionic-native'; console.log('Device UUID is: ' + Device.uuid); 

参考: http : //ionicframework.com/docs/v2/native/device/

你可以在你的platform.ready函数中使用ionic.Platform.device()

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

希望这可以帮助别人:)。

问候。

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

您只能访问ionic.Platform.ready()callback函数中的cordova插件:

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

这是因为Cordova插件需要一些时间才能加载Web应用程序。 离线。平台。就绪()callback立即触发Cordova完全加载或立即如果它已经加载。

今天一直在挣扎几个小时,安装cordova设备插件:

cordova plugin add cordova-plugin-device

确保你也可以在你的config.xml中引用这个插件:

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

哇,通过这个问题发现我正在做什么错。 http://forum.ionicframework.com/t/problem-to-use-ngcordova-device-is-not-defined/11979

当我们testing其他平台比cordova支持这种情况发生的其他设备上。 这对我来说是一个有用的发现。