我正在开发混合离子应用。
我想获取Android设备的设备ID。我安装了 cordova插件,其中包含 cordova.min.js 文件。
我试过这段代码,仍然没有显示任何内容。
有没有其他方法可以获取设备ID?
angular.module('starter', ['ionic','ngCordova'])
.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if(window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if(window.StatusBar) {
StatusBar.styleDefault();
}
});
})
.controller('DeviceController', function($ionicPlatform, $scope, $cordovaDevice) {
$ionicPlatform.ready(function() {
$scope.$apply(function() {
var device = $cordovaDevice.getDevice();
$scope.manufacturer = device.manufacturer;
$scope.model = device.model;
$scope.platform = device.platform;
$scope.uuid = device.uuid;
});
});
})

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title></title>
<link href="lib/ionic/css/ionic.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
<!-- IF using Sass (run gulp sass first), then uncomment below and remove the CSS includes above
<link href="css/ionic.app.css" rel="stylesheet">
-->
<!-- ionic/angularjs js -->
<script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="js/ng-cordova.min.js"></script>
<!-- cordova script (this will be a 404 during development) -->
<script src="cordova.js"></script>
<!-- your app's js -->
<script src="js/app.js"></script>
</head>
<body ng-app="starter" ng-controller="DeviceController">
<ion-pane>
<ion-header-bar class="bar-stable">
<h1 class="title">Device Information</h1>
</ion-header-bar>
<ion-content>
<div class="item item-text-wrap">
<ul class="list">
<li class="item">
Manufacturer : {{manufacturer}}
</li>
<li class="item">
Model : {{model}}
</li>
<li class="item">
Platform : {{platform}}
</li>
<li class="item">
UUID : {{uuid}}
</li>
</ul>
</div>
</ion-content>
</ion-pane>
</body>
</html>
&#13;
答案 0 :(得分:2)
如果已安装设备插件,只需执行window.device.uuid
(在收到设备就绪事件后)。
修改强>
再看一下你的代码,你不需要在控制器中准备好平台,我不确定它是否会像那样触发。你也为什么在那里打电话申请?怎么样:
.controller('DeviceController', function () {
alert(window.device.uuid);
});
答案 1 :(得分:0)
您可以在项目UniqueDeviceID
中添加以下插件并在准备就绪的
中添加以下行window.plugins.uniqueDeviceID.get(成功,失败);
在代码中添加成功和失败功能
function success(){
alert(uuid);
}
function fail(error){
alert("error " + error);
}
答案 2 :(得分:0)
这里要注意的是ng-cordova.js在内部调用方法和API的原生cordova,因此即使在安装ng-cordova.js之后单独安装cordova插件也非常重要。然后我在app.module中初始化了设备。
$ionicPlatform.ready(function() {
$scope.deviceInformation = ionic.Platform.device();
});
我在我的介绍控制器中调用了该方法
$scope.getDeviceInfo = function() {
alert($scope.deviceInformation.uuid);
}
答案 3 :(得分:0)
我知道了,代码是完整的,没有错,即使插件安装正确。问题是ng-cordova.min.js。我刚刚下载了最新版本的ng-cordova.min.js。它的工作完美。 谢谢大家。 这可能会对其他人有所帮助。