如何使用cordova插件获取离子中的设备ID?

时间:2016-06-02 11:25:55

标签: angularjs cordova ionic-framework uuid hybrid-mobile-app

我正在开发混合离子应用

我想获取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;
&#13;
&#13;

4 个答案:

答案 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);
}

或者通过http://ngcordova.com/docs/plugins/device/会帮助你..

答案 3 :(得分:0)

我知道了,代码是完整的,没有错,即使插件安装正确。问题是ng-cordova.min.js。我刚刚下载了最新版本的ng-cordova.min.js。它的工作完美。 谢谢大家。 这可能会对其他人有所帮助。