ionic framework导入模块,variables总是未定义的
我正在尝试导入我的ionic framework项目中的新function。 我执行了以下命令行:
$ ionic cordova插件添加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
添加一些东西吗?
我validation了dir存在于workspacedir/node_modules/@ionic-native/unique-device-id´
必须UniqueDeviceID是提供者的提供者吗?
是。 从Ionic-Native 3.x开始,所有离子本地服务都需要设置为提供者。 在这里检查。
@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)); }); }
此外,请确保您正在模拟器/设备中进行testing,因为在使用ionic serve
时未启用cordova插件。