0

我正在开发一个关于 ionic v3 的项目。
我想在我的应用程序中获得一个唯一的设备 ID。
我按照https://ionicframework.com/docs/native/unique-device-id/上的说明进行操作

ts文件:

import { UniqueDeviceID } from '@ionic-native/unique-device-id/ngx';   

constructor(private uniqueDeviceID: UniqueDeviceID) { }

login(){
  this.uniqueDeviceID.get()
   .then((uuid: any) => console.log(uuid))
   .catch((error: any) => console.log(error)); 
}

在 app.module.ts 中:

import { UniqueDeviceID } from '@ionic-native/unique-device-id/ngx';

providers: [
    StatusBar,
    SplashScreen,
    UniqueDeviceID,
    { provide: ErrorHandler, useClass: IonicErrorHandler },
    AuthServiceProvider
  ]

当我运行它时发生错误:

错误:未捕获(承诺中):TypeError:Object(...)不是函数
TypeError:Object(...)不是函数

在此处输入图像描述

包.json

{
  "name": "sujagSindhiSamiti",
  "version": "0.0.1",
  "author": "Ionic Framework",
  "homepage": "http://ionicframework.com/",
  "private": true,
  "scripts": {
    "start": "ionic-app-scripts serve",
    "clean": "ionic-app-scripts clean",
    "build": "ionic-app-scripts build",
    "lint": "ionic-app-scripts lint"
  },
  "dependencies": {
    "@angular/animations": "5.2.11",
    "@angular/common": "5.2.11",
    "@angular/compiler": "5.2.11",
    "@angular/compiler-cli": "5.2.11",
    "@angular/core": "5.2.11",
    "@angular/forms": "5.2.11",
    "@angular/platform-browser": "5.2.11",
    "@angular/platform-browser-dynamic": "5.2.11",
    "@ionic-native/core": "4.20.0",
    "@ionic-native/device": "^5.19.1",
    "@ionic-native/splash-screen": "4.20.0",
    "@ionic-native/status-bar": "4.20.0",
    "@ionic-native/unique-device-id": "^5.19.1",
    "@ionic/storage": "2.2.0",
    "cordova-android": "8.1.0",
    "cordova-plugin-uniquedeviceid": "1.3.2",
    "ionic-angular": "3.9.9",
    "ionicons": "3.0.0",
    "rxjs": "5.5.11",
    "sw-toolbox": "3.6.0",
    "zone.js": "0.8.29"
  },
  "devDependencies": {
    "@ionic/app-scripts": "3.2.4",
    "cordova-plugin-device": "^2.0.2",
    "cordova-plugin-ionic-keyboard": "^2.2.0",
    "cordova-plugin-ionic-webview": "^4.1.3",
    "cordova-plugin-splashscreen": "^5.0.2",
    "cordova-plugin-statusbar": "^2.4.2",
    "cordova-plugin-whitelist": "^1.3.3",
    "typescript": "2.6.2"
  },
  "description": "An Ionic project",
  "cordova": {
    "plugins": {
      "cordova-plugin-whitelist": {},
      "cordova-plugin-statusbar": {},
      "cordova-plugin-device": {},
      "cordova-plugin-splashscreen": {},
      "cordova-plugin-ionic-webview": {
        "ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
      },
      "cordova-plugin-ionic-keyboard": {},
      "cordova-plugin-uniquedeviceid": {}
    },
    "platforms": [
      "android"
    ]
  }
}
4

3 回答 3

0

我看到您使用的是 Ionic v3.9.9,因此您不能使用 Ionic Native 5,因为它需要 Ionic v4。

将 package.json 中的 @ionic-native/* 依赖项更新为“4.20.0”并运行 npm install。那应该可以解决所有问题。

于 2020-01-10T10:47:28.513 回答
0

关注 v3文档

$ ionic cordova plugin add cordova-plugin-uniquedeviceid
$ npm install --save @ionic-native/unique-device-id@4

有用。

于 2020-05-24T09:36:52.960 回答
0

使用 Ionic Device Plugin 获取 UUID。

https://ionicframework.com/docs/native/device

该插件还提供以下功能。

型号、平台、uuid、版本、制造商、序列号、isVirtual

于 2021-04-02T06:24:52.837 回答