如何在 iOS 中获取 NFC 标签的 icManufacturerCode
how to get icManufacturerCode of NFC tag in iOS
使用 CoreNFC 我想读取 NFC 标签的 icMenufecturerCode。根据 Apple 文档 NFCISO15693Tag 具有 属性 命名的 icManufacturerCode,可以读作:
func readerSession(_ session: NFCReaderSession, didDetect tags: [NFCTag]) {
for tag in tags {
let rfidTag = tag as! NFCISO15693Tag
print("- Is available: \(rfidTag.isAvailable)")
print("- Type: \(rfidTag.type)")
print("- IC Manufacturer Code: \(rfidTag.icManufacturerCode)")
print("- IC Serial Number: \(rfidTag.icSerialNumber)")
print("- Identifier: \(rfidTag.identifier)")
}
}
但我很困惑..它是正确的标签 reader 会话还是有其他方法可以读取 iOS 11 中 NFC 标签的制造商 ID。
在 iOS 11 中,我们有 NFCNDEFReaderSession
。我使用 NFCNDEFReaderSessionDelegate
实现了代码,但这些方法没有提供任何读取 icManufacturerCode 的方法。用 NFCReaderSessionDelegate
方法替换该代码可以吗?
NFCReaderSession
会读取什么类型的标签?
我知道这不是一个好的明确问题,但我的困惑有些奇怪。谢谢。
iOS11 的问题与 类 的签名和 Apple 的协议有关(协议 NFCTag
已成为 iOS13 的枚举,如果我不要混淆)。但是,您可以使用此代码,它应该适用于 iOS11+
的所有版本
extension YourViewController: __NFCReaderSessionDelegate {
func readerSessionDidBecomeActive(_ session: NFCReaderSession) {
}
func readerSession(_ session: NFCReaderSession, didInvalidateWithError error: Error) {
}
func readerSession(_ session: NFCReaderSession, didDetect tags: [__NFCTag]) {
for tag in tags {
let rfidTag = tag as! NFCISO15693Tag
print("- Is available: \(rfidTag.isAvailable)")
print("- Type: \(rfidTag.type)")
print("- IC Manufacturer Code: \(rfidTag.icManufacturerCode)")
print("- IC Serial Number: \(rfidTag.icSerialNumber)")
print("- Identifier: \(rfidTag.identifier)")
}
}
}
有 2 个必需的方法和一个可选的方法(来自 Obj-C),只是为了得到 icManufacturerCode
。
According to documentation of Apple
use an instance of NFCNDEFReaderSession or NFCTagReaderSession. Only
one reader session of any type can be active in the system at a time
使用 CoreNFC 我想读取 NFC 标签的 icMenufecturerCode。根据 Apple 文档 NFCISO15693Tag 具有 属性 命名的 icManufacturerCode,可以读作:
func readerSession(_ session: NFCReaderSession, didDetect tags: [NFCTag]) {
for tag in tags {
let rfidTag = tag as! NFCISO15693Tag
print("- Is available: \(rfidTag.isAvailable)")
print("- Type: \(rfidTag.type)")
print("- IC Manufacturer Code: \(rfidTag.icManufacturerCode)")
print("- IC Serial Number: \(rfidTag.icSerialNumber)")
print("- Identifier: \(rfidTag.identifier)")
}
}
但我很困惑..它是正确的标签 reader 会话还是有其他方法可以读取 iOS 11 中 NFC 标签的制造商 ID。
在 iOS 11 中,我们有 NFCNDEFReaderSession
。我使用 NFCNDEFReaderSessionDelegate
实现了代码,但这些方法没有提供任何读取 icManufacturerCode 的方法。用 NFCReaderSessionDelegate
方法替换该代码可以吗?
NFCReaderSession
会读取什么类型的标签?
我知道这不是一个好的明确问题,但我的困惑有些奇怪。谢谢。
iOS11 的问题与 类 的签名和 Apple 的协议有关(协议 NFCTag
已成为 iOS13 的枚举,如果我不要混淆)。但是,您可以使用此代码,它应该适用于 iOS11+
extension YourViewController: __NFCReaderSessionDelegate {
func readerSessionDidBecomeActive(_ session: NFCReaderSession) {
}
func readerSession(_ session: NFCReaderSession, didInvalidateWithError error: Error) {
}
func readerSession(_ session: NFCReaderSession, didDetect tags: [__NFCTag]) {
for tag in tags {
let rfidTag = tag as! NFCISO15693Tag
print("- Is available: \(rfidTag.isAvailable)")
print("- Type: \(rfidTag.type)")
print("- IC Manufacturer Code: \(rfidTag.icManufacturerCode)")
print("- IC Serial Number: \(rfidTag.icSerialNumber)")
print("- Identifier: \(rfidTag.identifier)")
}
}
}
有 2 个必需的方法和一个可选的方法(来自 Obj-C),只是为了得到 icManufacturerCode
。
According to documentation of Apple
use an instance of NFCNDEFReaderSession or NFCTagReaderSession. Only one reader session of any type can be active in the system at a time