Ionic 4: NFC无法导入NFC和Ndef

Ionic 4: NFC can't import NFC and Ndef

使用 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)

为了在您的应用中使用 NFC,您需要将 NFC 添加到您的 app.module.ts 供应商:

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

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

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