1

在我的 React Native 应用程序中,其中一个屏幕显示 QR 码。该 QR 码应放置在具有 NFC 功能的 QR 码阅读器中。

我的任务是确保 NFC 已关闭。是的,我的应用程序没有任何 NFC 特性或功能。AndroidManifest 或 Info.plist 中未设置任何权限。

这只是 QR 码提供商(来自荷兰的 NS)的要求,以确保 NFC 已关闭。怎么做?

是否有可能此时另一个应用程序以某种方式使用 NFC?

更新:

通常,问题在于 Apple Pay 和 Google Pay。尝试从屏幕扫描二维码时,会弹出两个支付应用程序,从而阻止读取二维码。

所以这个想法只是在使用我们的应用程序时禁用这些支付应用程序。

Github 上的相关问题https://github.com/revtel/react-native-nfc-manager/issues/455

4

2 回答 2

1

所以 Apple Pay 和 Google Pay 的问题如下:

  • 尝试在移动设备上扫描二维码
  • 实际行为:弹出支付应用
  • 预期行为:QR 停留在屏幕上

所以这个想法只是在使用我们的应用程序时禁用这些支付应用程序。

于 2021-11-22T07:51:03.083 回答
1

我必须在 RN 应用程序中使用 NFC 功能。这是我用过的包:https ://github.com/revtel/react-native-nfc-manager 。设置在 Android 上很简单,但在 iOS 上可能会很棘手:https ://github.com/revtel/react-native-nfc-manager/blob/main/setup.md

您有诸如isEnabled(): Promise<boolean>;or之类的方法isSupported(): Promise<boolean>;。我相信它们对你来说已经足够了。

免责声明:
我从未尝试使用这些函数直接检查:我通常检查状态的变化,因为我需要发出一些警告。

此外,我不只是检查开或关。我使用某些东西是因为我需要确保 iPhone 可以使用 NFC 进行读/写(而不仅仅是支付)

try {
    await NfcManager.isSupported(NfcTech.Iso15693IOS);
} catch (error) {
    // set state = off and unsupported
于 2021-11-18T19:38:46.393 回答