"Error: Uncaught (in promise): TypeError: Object(...) is not a function" using UniqueDeviceID
"Error: Uncaught (in promise): TypeError: Object(...) is not a function" using UniqueDeviceID
我正在开发一个基于 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
]
当我运行时出现错误:
Error: Uncaught (in promise): TypeError: Object(...) is not a function
TypeError: Object(...) is not a function
package.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"
]
}
}
我看到您使用的是 Ionic v3.9.9,所以您不能使用 Ionic Native 5,因为它需要 Ionic v4。
将 package.json 中的 @ionic-native/* 依赖项更新为“4.20.0”和 运行 npm 安装。这应该可以解决所有问题。
关注 v3 doc。
$ ionic cordova plugin add cordova-plugin-uniquedeviceid
$ npm install --save @ionic-native/unique-device-id@4
有效。
使用 Ionic Device Plugin 获取 UUID。
https://ionicframework.com/docs/native/device
此插件还提供以下功能。
模型,
平台,
uuid,
版本,
制造商,
连续剧,
是虚拟的
我正在开发一个基于 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
]
当我运行时出现错误:
Error: Uncaught (in promise): TypeError: Object(...) is not a function
TypeError: Object(...) is not a function
package.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"
]
}
}
我看到您使用的是 Ionic v3.9.9,所以您不能使用 Ionic Native 5,因为它需要 Ionic v4。
将 package.json 中的 @ionic-native/* 依赖项更新为“4.20.0”和 运行 npm 安装。这应该可以解决所有问题。
关注 v3 doc。
$ ionic cordova plugin add cordova-plugin-uniquedeviceid
$ npm install --save @ionic-native/unique-device-id@4
有效。
使用 Ionic Device Plugin 获取 UUID。
https://ionicframework.com/docs/native/device
此插件还提供以下功能。
模型, 平台, uuid, 版本, 制造商, 连续剧, 是虚拟的