it-swarm.com.ru

Как получить UUID устройства в ionic фреймворке

установлен плагин Cordova для устройства:

Sudo cordova plugin add org.Apache.cordova.device

затем скачал ngCordova и включил ng-cordova.min.js в папку js, а также включил в index.html

далее, что я сделал, вводят ngCordova следующим образом

angular.module('starter', ['ionic', 'starter.controllers','ngCordova'])

затем включается в контроллер следующим образом

angular.module('starter.controllers', [])

.controller('AppCtrl', function($scope, $ionicModal, $timeout, $ionicPlatform,$cordovaDevice)
but still getting the following errors

ReferenceError: device is not defined
at Object.getUUID (http://localhost:8100/js/ng-cordova.min.js:1:14929)
at new <anonymous> (http://localhost:8100/js/controllers.js:27:26)
at invoke (http://localhost:8100/lib/ionic/js/ionic.bundle.js:11591:17)
at Object.instantiate (http://localhost:8100/lib/ionic/js/ionic.bundle.js:11602:23)
at http://localhost:8100/lib/ionic/js/ionic.bundle.js:14906:28
at updateView (http://localhost:8100/lib/ionic/js/ionic.bundle.js:42986:30)
at eventHook (http://localhost:8100/lib/ionic/js/ionic.bundle.js:42933:17)
at Scope.$broadcast (http://localhost:8100/lib/ionic/js/ionic.bundle.js:20605:28)
at $state.transition.resolved.then.$state.transition (http://localhost:8100/lib/ionic/js/ionic.bundle.js:34122:22)
at wrappedCallback (http://localhost:8100/lib/ionic/js/ionic.bundle.js:19197:81)

Можете ли вы сказать мне, что пошло не так?

Если есть другой способ прочитать UUID устройства, покажите мне направление к нему.

14
sarsarahman

вау узнал что не так я делал ... через этот вопрос. http://forum.ionicframework.com/t/problem-to-use-ngcordova-device-is-not-defined/11979

когда мы проводим тестирование на другом устройстве, которое поддерживает платформу, отличную от cordova, это происходит .. для меня это было полезным открытием.

0
sarsarahman

Да, есть другой способ. Вам просто не нужна ngCordova для этого.

Когда вы добавляете плагин cordova plugin add org.Apache.cordova.device, он загружается в ваше приложение, и поэтому вам нужна информация window.device.

Если вы хотите получить устройство uuid в любом месте кода, вам просто нужно вызвать window.device.uuid.

Если вы хотите, как только приложение запустится, используйте:

ionic.Platform.ready(function(){
  console.log( window.device.uuid );
});
13
Ratata Tata

Если вы используете «> ионная подача», устройство будет «не определено». Попробуйте в эмуляторе или физическом устройстве.

10
David J Barnes

Используйте ngCordova и плагин Cordova Device :

cordova плагин добавить орг.Апач.Cordova.device

module.controller('MyCtrl', function($scope, $cordovaDevice) {
  var uuid = $cordovaDevice.getUUID();
});
8
Ben Diamant

В v2 это работает так:

import { Device } from 'ionic-native';
console.log('Device UUID is: ' + Device.uuid);

Ссылка: http://ionicframework.com/docs/v2/native/device/

5
frank

Вы можете просто использовать ionic.Platform.device() в своей функции platform.ready

$ionicPlatform.ready(function {
  console.log(ionic.Platform.device());// returns an object containing device uuid,version, platform, manufacturer ...
});

надеюсь, это поможет кому-то :).

С уважением.

3
Herman Demsong

Установка:

@ Ионно-нативный/ядро ​​ @ Ионно-нативный/устройство

введите описание ссылки здесь

ionic cordova plugin add cordova-plugin-device
npm install --save @ionic-native/device

Добавьте этот плагин в модуль вашего приложения

 // app.module.ts
import { Device } from '@ionic-native/device';

...

@NgModule({
  ...

  providers: [
    ...
    Device
    ...
  ]
  ...
})
export class AppModule { }

Использование

import { Device } from '@ionic-native/device';

constructor(private device: Device) { }

...

console.log('Device Model is: ' + this.device.model+
  '\n Device UUID is: ' + this.device.uuid+
  '\n Device serial is: ' + this.device.serial+
  '\n Device platform is: ' + this.device.platform+
  '\n Device version is: ' + this.device.version+
  '\n Device manufacturer is: ' + this.device.manufacturer);

Если не запустится, измените "import { Device } from '@ionic-native/device';" на "import { Device } from '@ionic-native/device/ngx';"

И "this.device.uuid" для "Расследовать"

Используйте эти команды для запуска в браузере

    ionic build

    ionic cordova platform add browser

    cordova run browser

И работает! в этих версиях

 enter image description here

в браузере

 enter image description here

в реальном устройстве

 enter image description here

2
Jéssica Román Largo

Уже несколько часов с этим борюсь, установите плагин для устройства cordova с помощью:

cordova plugin add cordova-plugin-device

убедитесь, что вы также ссылаетесь на плагин в вашем config.xml:

<plugin name="cordova-plugin-device" source="npm" spec="~1.1.1" />

1
Alessandro Santamaria

http://forum.ionicframework.com/t/ionic-cordova-device-uuid/13652

Вы можете получить доступ только к плагинам cordova в функции обратного вызова ionic.Platform.ready ():

angular.module('starter.controllers', [])

.controller('DashCtrl', function ($scope, $state, $cordovaDevice) {

var init = function () {
  console.log("initializing device");
  try {

    $scope.uuid = $cordovaDevice.getUUID();

  }
  catch (err) {
    console.log("Error " + err.message);
    alert("error " + err.$$failure.message);
  }

};

ionic.Platform.ready(function(){
  init();
});

})

Это связано с тем, что для загрузки плагинов Cordova требуется больше времени, чем для загрузки веб-приложения. Обратный вызов ionic.Platform.ready () запускается сразу после полной загрузки Cordova или сразу после загрузки.

1
rahuldm