2016-06-02 5 views
3

Я работаю над гибридным ионным приложением.Как получить идентификатор устройства в ионном режиме с помощью плагина cordova?

Я хочу получить идентификатор устройства Android-устройства. Я установил плагин cordova, включая cordova.min.js файл.

Я пробовал этот код, все еще не отображающий ничего.

Есть ли другой способ получить идентификатор устройства?

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>

ответ

2

При условии, что вы установили плагин устройства, просто сделать window.device.uuid (после того, как вы получили устройство, готовое событие).

EDIT

снова Глядя на ваш код, вам не нужна платформа готова в контроллере, и я не уверен, если это будет стрелять, как это. Также почему вы называете заявку там? Как об этом:

.controller('DeviceController', function() { 
    alert(window.device.uuid); 
}); 
+0

все еще не работает, необходимо ли, чтобы устройство было подключено к Интернету, чтобы получить uuid? –

+0

@PrathikKotian нет, вам не нужно подключаться, чтобы получить uid. В чем проблема? Является ли объект window.device неопределенным? – kagelos

0

вы можете добавить ниже плагина в вашем проекте UniqueDeviceID

и добавить ниже линии в ondevice готов

window.plugins.uniqueDeviceID.get (успех, неудача);

добавить успех и функцию отказа в коде

function success(){ 
    alert(uuid); 
} 



function fail(error){ 
alert("error " + error); 
} 
0

Точки отметить здесь, нг-cordova.js внутренне вызывает методы и Дна родную Кордову API, так что очень важно установить Кордову плагин отдельно даже после установки ng-cordova.js. Затем я инициализировал устройство в app.module. не

$ionicPlatform.ready(function() { 
    $scope.deviceInformation = ionic.Platform.device(); 
}); 

и я назвал метод в моем интро контроллер

$scope.getDeviceInfo = function() { 
    alert($scope.deviceInformation.uuid); 
} 

Или пройти через http://ngcordova.com/docs/plugins/device/ поможет ..

0

Я получил его, Код perfecr, ничего плохого в том, даже плагин установлен правильно. Проблема заключалась в ng-cordova.min.js. Я только что загрузил самую новую версию ng-cordova.min.js. И он работает отлично. Спасибо всем. Это может помочь другим.