Ionic 4:NFC无法导入NFC和Ndef

时间:2019-10-19 12:20:11

标签: typescript ionic-framework cordova-plugins ionic4

使用Cordova插件在Ionic 4中启动项目。我正在尝试将NFC初始化到项目中。我只是遵循了Ionic文档,而Cordova-Plugin被添加到package.json中。现在,我试图添加一个NdefListener。这样我就可以读取,写入和清除NFC标签。

我尝试使用@ ionic-native / nfc代替@ ionic-native / nfc / ngx,但是我的代码找不到@ ionic-native / nfc。

我的Ionic CLI是5.2.8。

这是在我的home.page.ts中。

import { NFC, Ndef } from "@ionic-native/nfc/ngx";

constructor(private nfc: NFC, private ndef: Ndef) {}

在构造函数中仅使用ndef时没有其他代码时会收到错误代码,当我将NFC放在首位时只有Ndef更改为NFC时,也会发生同样的错误代码。

ERROR Error: Uncaught (in promise): NullInjectorError: StaticInjectorError(AppModule)[HomePage -> Ndef]: 
  StaticInjectorError(Platform: core)[HomePage -> Ndef]: 
    NullInjectorError: No provider for Ndef!
NullInjectorError: StaticInjectorError(AppModule)[HomePage -> Ndef]: 
  StaticInjectorError(Platform: core)[HomePage -> Ndef]: 
    NullInjectorError: No provider for Ndef!
    at NullInjector.get (/vendor-es2015.js:35988)
    at resolveToken (/vendor-es2015.js:37774)
    at tryResolveToken (/vendor-es2015.js:37700)
    at StaticInjector.get (/vendor-es2015.js:37563)
    at resolveToken (/vendor-es2015.js:37774)
    at tryResolveToken (/vendor-es2015.js:37700)
    at StaticInjector.get (/vendor-es2015.js:37563)
    at resolveNgModuleDep (/vendor-es2015.js:61613)
    at NgModuleRef_.get (/vendor-es2015.js:62701)
    at resolveNgModuleDep (/vendor-es2015.js:61613)
    at resolvePromise (/polyfills-es2015.js:3803)
    at resolvePromise (/polyfills-es2015.js:3760)
    at /polyfills-es2015.js:3864
    at ZoneDelegate.invokeTask (/polyfills-es2015.js:3397)
    at Object.onInvokeTask (/vendor-es2015.js:69392)
    at ZoneDelegate.invokeTask (/polyfills-es2015.js:3396)
    at Zone.runTask (/polyfills-es2015.js:3174)
    at drainMicroTaskQueue (/polyfills-es2015.js:3565)

2 个答案:

答案 0 :(得分:1)

要在您的应用中使用NFC,您需要将NFC添加到您的app.module.ts提供程序中:

答案 1 :(得分:1)

您还应该将其导入主模块:

....
import { NFC, Ndef } from "@ionic-native/nfc/ngx";

@NgModule({
  ....
  providers: [
    ......
    NFC,
    Ndef
  ]
....