我正在尝试为 iOS 应用程序实现后台 NFC 标签读取。我正在使用的 NFC 标签对必须写入的格式有特定要求 - 具体来说,只有第二条记录可以是 URI,并且长度必须为 56 个字符。
我已经构建并编写了以下 NDEF 消息:
let message = NFCNDEFMessage(records: [
NFCNDEFPayload(
format: .nfcExternal,
type: "-- omitted --".data(using: .utf8)!,
identifier: "".data(using: .utf8)!,
payload: "-- omitted --".data(using: .utf8)!
),
NFCNDEFPayload(
format: .nfcWellKnown,
type: "U".data(using: .utf8)!,
identifier: "".data(using: .utf8)!,
payload: "https://apple.com? ".data(using: .utf8)!
),
NFCNDEFPayload(
format: .nfcWellKnown,
type: "T".data(using: .utf8)!,
identifier: "".data(using: .utf8)!,
payload: "-- omitted --".data(using: .utf8)!
)
])
现在,当我将 iOS 设备与手机接触时,我会收到一条提示信息(括号中的原始内容,假设先是英文翻译):
检测到 NFC 标记(NFC 标记 GEDETECTEERD)
未找到可用数据(Green bruikbare gegevens gevonden)
我尝试用?_______...
通用链接或通用链接替换空格,但我总是得到相同的响应。当我尝试读取其他未写入的 NFC 标签时,我没有收到提示,因此我知道新消息正在激活后台读取,但我不知道为什么它无法读取。
我唯一的猜测是iOS没有解码.utf8
字节数组,但我不知道如何将消息存储/编码到NFC标签