5

CoreNFC 如何在 xcode-9 上以编程方式工作

func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error) {
    //What I need to do here
}

func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) {
    //What I need to do here
}

override func viewDidLoad() {
    super.viewDidLoad()

    let sessionReader = NFCNDEFReaderSession.init(delegate: self, queue: nil, invalidateAfterFirstRead: true)
    let nfcSession = NFCReaderSession.self

    let nfcTag = NFCTagCommandConfiguration.init()
    let tagType = NFCTagType(rawValue: 0)

    sessionReader.begin()

}

我想知道读取一些 NFC 标签需要做什么。

4

1 回答 1

14

有四个步骤可以让它工作:

  1. 在 Apple 开发者门户中将 NFC 标签权限添加到您的 App Identifier

在此处输入图像描述

  1. 将代码签名权利文件添加到您的项目和构建设置中,并添加以下原始键和值:

在此处输入图像描述 在此处输入图像描述

  1. 将使用说明添加到您的 Info.plist:

在此处输入图像描述

  1. 实现委托并将其传递给NFCNDEFReaderSessioninit,如下所示:

    import UIKit
    import CoreNFC
    
    @UIApplicationMain
    class AppDelegate: UIResponder, UIApplicationDelegate, NFCNDEFReaderSessionDelegate {
    
        var window: UIWindow?
        var session: NFCNDEFReaderSession?
    
        func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
            session = NFCNDEFReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: false)
            self.session?.begin()
            return true
        }
    
        func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error) {
            print(error)
        }
    
        func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) {
            print(messages)
        }
    
    }
    
于 2017-06-06T14:11:36.350 回答