在iOS 13 Swift中读取NFC tagid



我正在研究NFC标签阅读器。 我想读取每个NFC卡的唯一ID,我在iOS 13 Swift中使用NDEF标签。 但我无法得到它。我想知道有没有办法获得tagId,如果是,请帮助我,提前感谢。

func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) {
print("Detected tag - (messages)")
for message in messages {
for record in message.records {
if let string = String(data: record.payload, encoding: .utf8) {
print("record -- (string)")
}
if let iden = String(data: record.identifier,encoding: .utf8){
print("identifier - (iden)")
}
}
}
}

试试这个。

class PatrolRouteDetailVC: NFCTagReaderSessionDelegate {
func tagReaderSessionDidBecomeActive(_ session: NFCTagReaderSession) {
print("Session Begun!")
}
func tagReaderSession(_ session: NFCTagReaderSession, didInvalidateWithError error: Error) {
print(error.localizedDescription)
}
func tagReaderSession(_ session: NFCTagReaderSession, didDetect tags: [NFCTag]) {
if tags.count > 1{
session.alertMessage = MORE_ONE_TAG_DETECTED_STR
session.invalidate()
}
let tag = tags.first!
session.connect(to: tag) { (error) in
if nil != error{
session.invalidate(errorMessage: CONNECTION_FAILD_STR)
}
if case let .miFare(sTag) = tag{
let UID = sTag.identifier.map{ String(format: STRING_IDENTIFER_STR, $0)}.joined()
session.alertMessage = UID_CAPTURE_STR
session.invalidate()
DispatchQueue.main.async {
self.nfcTagIdStr = "(UID)"
}
}
}
}
}

最新更新