gpt4 book ai didi

node.js - ionicframework导入模块,变量始终未定义

转载 作者:太空宇宙 更新时间:2023-11-04 00:18:22 25 4
gpt4 key购买 nike

我正在尝试在我的 ionicframework 项目中导入新功能。我执行了以下命令行:

$ ionic cordova plugin add cordova-plugin-uniquedeviceid

$ npm install --save @ionic-native/unique-device-id

在我的文件 MyOwnService.ts 中,我正在导入它:

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

import { Http } from '@angular/http';

然后在我的 MyOwnService 的构造函数中:

  constructor(http: Http, uniqueDeviceID: UniqueDeviceID) {
console.log('Loading provider');
uniqueDeviceID.get()
.then((uuid: any) => console.log("UID : " + uuid))
.catch((error: any) => console.log("UIDERR : " + error));
}

但是 uniqueDeviceID 始终未定义。如果我在构造函数中添加额外的参数,http´ 也不再起作用。

我错过了什么吗?我必须在 app.module.ts 中添加一些内容吗?

我验证了该目录存在于 workspacedir/node_modules/@ionic-native/unique-device-id´

最佳答案

Must UniqueDeviceID be a provider of a provider ?

是的。从 Ionic-Native 3.x 开始,所有 ionic native 服务都需要设置为提供者。检查here .

@NgModule({
...

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

其次,访问插件时,需要使用this.platform.ready(),如下所示:

 constructor(http: Http, uniqueDeviceID: UniqueDeviceID) {
console.log('Loading provider');
this.platform.ready().then(() => {
uniqueDeviceID.get()
.then((uuid: any) => console.log("UID : " + uuid))
.catch((error: any) => console.log("UIDERR : " + error));
});
}

还要确保您在模拟器/设备中进行测试,因为使用 ionicserve 时未启用 cordova 插件。

关于node.js - ionicframework导入模块,变量始终未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45705920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com