Flutter nfc_manager在iOS端无法写入ISO14443A协议NFC标签问题咨询
问题解答
是否需要添加第三项配置
必须添加,iOS的NFC权限体系要求,不管是读还是写操作,都需要先配置对应的标签识别规则,系统才会将扫描到的符合规则的标签回传给你的应用。你之前没有配置相关规则,系统扫描到ISO14443A标签后会直接忽略,不会触发应用层的任何回调,因此就会出现无报错也无法执行写入的情况。
你使用的是ISO14443A协议标签,不需要配置Felica相关的com.apple.developer.nfc.readersession.felica.systemcodes参数,仅需配置ISO7816相关的识别规则即可。
具体配置步骤
- 打开iOS项目的
ios/Runner/Info.plist文件 - 右键选择「Open As -> Source Code」进入源码编辑模式
- 在根
<dict>标签内部插入以下代码:
<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key> <array> <!-- NFC Forum Type 4标签默认标识符,适配绝大多数ISO14443A商用标签 --> <string>D2760000850101</string> <!-- 通配符,适配所有ISO7816规范标签,可按需删除 --> <string>00000000000000</string> </array>
- 保存文件后重新编译运行项目即可
额外注意事项
- 确认Entitlements文件中
Near Field Communication Tag Reader Session Formats已经勾选了ISO14443、NFC Forum相关的标签格式选项 - 写入逻辑必须放在NFC会话启动后的标签发现回调中执行,不要在会话未激活状态下提前调用写入接口
内容的提问来源于stack exchange,提问作者rameez khan
相关产品推荐
相关产品推荐

