ngCordova getUUID()返回设备未定义

时间:2014-12-15 13:21:14

标签: javascript android angularjs ionic-framework

ngCordova getUUID()返回设备未定义

我正在使用Ionic框架构建移动应用程序,我需要检索设备UUID 我使用ngCordova使用这里的缩小版本  ngCordova

这是我的主要模块

angular.module('starter', ['ionic','ngCordova'])
.controller('test',function($scope,$cordovaDevice){
$scope.uuid=$cordovaDevice.getUUID();
console.log($cordovaDevice)
})
$ cordovaDevice在使用console.log时被定义为对象,但是当使用$ cordovaDevice.getUUID()时,它使我的设备未定义'任何帮助

5 个答案:

答案 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()