Javascript ngCordova getUUID()返回未定义的设备 ngCordova getUUID()返回未定义的设备

Javascript ngCordova getUUID()返回未定义的设备 ngCordova getUUID()返回未定义的设备,javascript,android,angularjs,ionic-framework,Javascript,Android,Angularjs,Ionic Framework,我正在使用Ionic framework构建一个移动应用程序,我需要检索设备UUID 我在这里使用了缩小版的ngCordova ! 这是我的主要模块 angular.module('starter', ['ionic','ngCordova']) .controller('test',function($scope,$cordovaDevice){ $scope.uuid=$cordovaDevice.getUUID(); console.log($cordovaDevice) }) 使用co

我正在使用Ionic framework构建一个移动应用程序,我需要检索设备UUID 我在这里使用了缩小版的ngCordova !

这是我的主要模块

angular.module('starter', ['ionic','ngCordova'])
.controller('test',function($scope,$cordovaDevice){
$scope.uuid=$cordovaDevice.getUUID();
console.log($cordovaDevice)
})

使用console.log时,$cordovaDevice被定义为对象,但使用$cordovaDevice.getUUID()时,它为我提供了“未定义设备”的任何帮助,您已将
ngCordova
正确地作为模块依赖项。我认为您需要做的就是使用完整的数组语法将
$cordovaDevice
注入控制器

  .controller('test',['$scope', '$cordovaDevice', function($scope, $cordovaDevice){
    $scope.uuid=$cordovaDevice.getUUID();
  }])

如果这不起作用,您是否检查了插件是否首先加载?

您已将
ngCordova
正确地声明为模块依赖项。我认为您需要做的就是使用完整的数组语法将
$cordovaDevice
注入控制器

  .controller('test',['$scope', '$cordovaDevice', function($scope, $cordovaDevice){
    $scope.uuid=$cordovaDevice.getUUID();
  }])

如果不起作用,您是否检查了插件是否首先加载?

您是否使用该命令安装了cordovaDevice插件

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


您是否使用命令安装了cordovaDevice插件

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


发生此错误是因为您在计算机上开发时询问设备的详细信息

看看这些函数。它们都不会在您的dev env上返回合适的值。另外,Cordova是为移动设备构建的——他们还没有为本地开发人员创建一组处理程序

  • 返回整个设备对象。 getDevice()

  • 返回Cordova版本。 getCordova()

  • 返回设备型号或产品的名称。 getModel()

  • 返回设备的操作系统名称。 getPlatform()

  • 返回设备的通用唯一标识符。 getUUID()

  • 返回操作系统版本。 getVersion()


发生此错误是因为您在计算机上开发时询问设备的详细信息

看看这些函数。它们都不会在您的dev env上返回合适的值。另外,Cordova是为移动设备构建的——他们还没有为本地开发人员创建一组处理程序

  • 返回整个设备对象。 getDevice()

  • 返回Cordova版本。 getCordova()

  • 返回设备型号或产品的名称。 getModel()

  • 返回设备的操作系统名称。 getPlatform()

  • 返回设备的通用唯一标识符。 getUUID()

  • 返回操作系统版本。 getVersion()


您应该等到设备准备就绪

document.addEventListener("deviceready", function() {
    $scope.isOnline = $cordovaNetwork.isOnline();
    $scope.UUID = $cordovaDevice.getUUID();
}, false);

您应该等到设备准备好

document.addEventListener("deviceready", function() {
    $scope.isOnline = $cordovaNetwork.isOnline();
    $scope.UUID = $cordovaDevice.getUUID();
}, false);

我在调用$cordovaDevice.getUUID()后调用$scope.$apply()解决了这个问题

从官方文档中,cordova插件返回一个承诺

$ionicPlatform.ready(function() {
   $cordovaPlugin.someFunction().then(success, error);
});

我在调用$cordovaDevice.getUUID()后调用$scope.$apply()解决了这个问题

从官方文档中,cordova插件返回一个承诺

$ionicPlatform.ready(function() {
   $cordovaPlugin.someFunction().then(success, error);
});

不幸的是,它不起作用,但请注意,我如何检查插件是否正在加载?您是在设备上测试还是在桌面浏览器上测试?您是否也经历过ngCordova文档中的“常见问题”?我在安卓设备上测试,是的,我读了常见问题,但它仍然不起作用。我唯一能建议的是1)确保在
cordova.js
之后加载您的
ng cordova.js
脚本2)确保您正在注入
$cordova device
,正如我上面所说的3)在网站上做所有事情,比如确保cordova是最新版本,刷新
android.json
等等。我曾尝试在设备上使用Ionic CLI执行上述操作,它构建良好并向用户发出UUID警报。在桌面浏览器中运行Cordova命令显然会显示“设备未定义”错误,但似乎在设备上对我有效…如果仍然不起作用,请尝试Ionic论坛,它们比Ionic问题的堆栈溢出更活跃。不幸的是,它不起作用,但请,如何首先检查插件是否正在加载您是在设备上测试还是在桌面浏览器上测试?您是否也经历过ngCordova文档中的“常见问题”?我在安卓设备上测试,是的,我读了常见问题,但它仍然不起作用。我唯一能建议的是1)确保在
cordova.js
之后加载您的
ng cordova.js
脚本2)确保您正在注入
$cordova device
,正如我上面所说的3)在网站上做所有事情,比如确保cordova是最新版本,刷新
android.json
等等。我曾尝试在设备上使用Ionic CLI执行上述操作,它构建良好并向用户发出UUID警报。在桌面浏览器中运行Cordova命令显然会显示“设备未定义”错误,但在设备上似乎对我有效…如果仍然不起作用,请尝试Ionic论坛,对于Ionic问题,它们比堆栈溢出更活跃。现在是
cordova插件添加cordova插件设备
现在是
cordova插件添加cordova插件设备