iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 16
0
Software Development

30 天上手 iOS App 開發系列 第 26

30 天上手 iOS App 開發 DAY 26

iOS 11 有許多新的 API 包含 CoreML , ARKit , CoreNFC 等
今天要來實作CoreNFC

Support Devices

  • iPhone 7 / iPhone 7 Plus
  • iOS 11

實作方式

  • 設置 Certificates, Identifiers & Profiles (Entitlements)
  • 設置 Info.plist
  • 實作 NFCNDEFReaderSessionDelegate

設置 Certificates, Identifiers & Profiles (Entitlements)

Xcode->Capabilities->Near Field Communication Tag Reading

設置 Info.plist

在 Info.Plist 添加 Privacy - NFC Scan Usage Description

實作 NFCNDEFReaderSessionDelegate

override func viewDidLoad() {
        super.viewDidLoad()
        let session = NFCNDEFReaderSession.init(delegate: self, queue: nil, invalidateAfterFirstRead: true)
        session.begin()
        // Do any additional setup after loading the view.
    }

實作 NFCNDEFReaderSession 的 兩個 Delegate

    //當有錯誤時會呼叫這個Delegate
func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error) {
        
    }
    //當有讀到tag會呼叫這個Delegate  
func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) {
        //解析tag資訊
        messages.forEach { (message) in
            message.records.forEach({ (item) in
                print(item.payload)  
                print(item.identifier)
                print(item.type)
                print(item.typeNameFormat)

            })
        }
    }

這篇文章說來心酸發了兩次才成功


上一篇
30 天上手 iOS App 開發 Day 25
下一篇
30 天上手 iOS App 開發 DAY 27
系列文
30 天上手 iOS App 開發30

尚未有邦友留言

立即登入留言