我正在使用Ionic框架构建移动应用程序,我需要检索设备UUID 我使用ngCordova使用这里的缩小版本 ngCordova!
这是我的主要模块
angular.module('starter', ['ionic','ngCordova'])
.controller('test',function($scope,$cordovaDevice){
$scope.uuid=$cordovaDevice.getUUID();
console.log($cordovaDevice)
})
答案 0 :(得分:2)
您是否使用命令?
安装了cordovaDevice插件
cordova plugin add org.apache.cordova.device
答案 1 :(得分:1)
你应该等到设备准备就绪......
document.addEventListener("deviceready", function() {
$scope.isOnline = $cordovaNetwork.isOnline();
$scope.UUID = $cordovaDevice.getUUID();
}, false);
答案 2 :(得分:1)
我通过调用$ cordovaDevice.getUUID()
之后调用$ scope。$ apply()来解决这个问题。$ionicPlatform.ready(function() {
if(ionic.Platform.isAndroid()) {
$scope.account.imei = $cordovaDevice.getUUID();
$scope.$apply();
}else {//For ionic serve
$scope.account.imei = '12345';
console.log($scope.account.imei);
}
});
从官方文档http://ngcordova.com/docs/common-issues/,cordova插件返回一个承诺。
$ionicPlatform.ready(function() {
$cordovaPlugin.someFunction().then(success, error);
});
答案 3 :(得分:0)
您已正确声明ngCordova
作为模块依赖项。我认为您需要做的就是使用完整数组语法
$cordovaDevice
注入控制器
.controller('test',['$scope', '$cordovaDevice', function($scope, $cordovaDevice){
$scope.uuid=$cordovaDevice.getUUID();
}])
如果您没有工作,您是否检查过插件是否先加载?
答案 4 :(得分:0)
发生此错误的原因是您在计算机上进行开发时询问设备的详细信息。
查看功能。他们都不会在您的开发环境中返回合适的值。 Cordova也是为移动设备而构建的 - 他们还没有为本地开发人员创建一套处理程序。
返回整个设备对象。 的getDevice()
返回Cordova版本。 getCordova()
返回设备型号或产品的名称。 getModel()
返回设备的操作系统名称。 getPlatform()
返回设备的通用唯一标识符。 getUUID()
返回操作系统版本。 getVersion()