Ionic 4:NFC 无法导入 NFC 和 Ndef

Posted

技术标签:

【中文标题】Ionic 4:NFC 无法导入 NFC 和 Ndef【英文标题】:Ionic 4: NFC can't import NFC and Ndef 【发布时间】:2020-02-16 04:54:35 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

你也应该在你的主模块中导入它:

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

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

【讨论】:

以上是关于Ionic 4:NFC 无法导入 NFC 和 Ndef的主要内容,如果未能解决你的问题,请参考以下文章

无法验证具有 7 字节 UID ACR122U 的 NFC 标签

苹果11的nfc可以给etc圈存吗

华为手机怎么用nfc?

华为Mate8支不支持NFC功能

如何查看手机是不是支持NFC功能

NFC Tag-4 协议问题