我正在开发一个 flutter 应用程序,它可以读取和写入 NFC 标签。在 Android 上它运行得很好。现在我正致力于在 IOS 上实现 NFC 写入,因为它现已可用。
我确实让应用程序将文本记录写入标签。但不知怎的,它是用 UTF16 编写的,这使得事情变得支离 splinter 。
如何使用 UTF-8 编码的字符串创建 NFCNDEFPayload.wellKnownTypeTextPayload?
最佳答案
你已经完成了大部分工作。这是一个完整的工作示例,它修复了一些问题(特别是缺少“类型”说明符和区域设置用法):
var payloadData = Data([0x02,0x65,0x6E]) // 0x02 + 'en' = Locale Specifier
payloadData.append("Text To Write".data(using: .utf8)!)
let payload = NFCNDEFPayload.init(
format: NFCTypeNameFormat.nfcWellKnown,
type: "T".data(using: .utf8)!,
identifier: Data.init(count: 0),
payload: payloadData,
chunkSize: 0)
请注意,这会将区域设置设置为“en”。
我已经在 iPhone 和 Android 上测试了使用此代码创建的标签,它似乎工作正常。
关于ios - NFC NDEF 在 IOS 编码上的写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58115985/