如何在离子框架中获取设备UUID

sar*_*man 14 android angularjs cordova ionic-framework ionic

安装了cordova设备插件:

sudo cordova plugin add org.apache.cordova.device
Run Code Online (Sandbox Code Playgroud)

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

接下来我做的是注入ngCordova,如下所示

angular.module('starter', ['ionic', 'starter.controllers','ngCordova'])
Run Code Online (Sandbox Code Playgroud)

然后包含在控制器中如下

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)
Run Code Online (Sandbox Code Playgroud)

你能告诉我出了什么问题吗?

如果有另一种方法来读取设备UUID向我显示它的方向.

Rat*_*ata 13

是的,还有另一种方式.你只需要ngCordova就可以了.

当您添加插件时,cordova plugin add org.apache.cordova.device它会加载到您的应用程序中,因此您需要的信息位于window.device.

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

如果您想在应用程序启动时立即使用,请使用:

ionic.Platform.ready(function(){
  console.log( window.device.uuid );
});
Run Code Online (Sandbox Code Playgroud)


Dav*_*nes 10

如果您使用'> ionic serve',设备将"未定义".尝试使用模拟器或物理设备.


Ben*_*ant 8

使用ngCordova和cordova设备插件:

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

module.controller('MyCtrl', function($scope, $cordovaDevice) {
  var uuid = $cordovaDevice.getUUID();
});
Run Code Online (Sandbox Code Playgroud)


小智 6

在v2中它的工作原理如下:

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

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


sar*_*man 0

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

当我们在具有 cordova 支持之外的平台的其他设备上进行测试时,就会发生这种情况。这对我来说是一个有用的发现。