5ad7794151b63c84e1c463474b9d6353
Introducing Core NFC

作者:WAMaker,丁香园 iOS 工程师

苹果在iOS 11上面向iPhone 7及以上设备开放了NFC读取的框架——Core NFC。

关于 NFC(Near Field Communication)

近场通讯,简称 NFC ,是一套能够让两个设备在近距离(几厘米)未接触的情况下进行无线数据通信的协议。它包含了一系列不同标准和协议,这些标准在不同的应用场景中相互作用。

最常见的是 NFC 设备是具有各种样式,尺寸和功能的 NFC 标签(tag)。标签最常见的5个类型标记为 Type 1 到 Type 5 ,每个类型对应一个标准。NDEF(NFC Data Exchange Format)为 NFC 读卡器提供了一种标准的通信数据格式。

Core NFC

Core NFC 的使用首先需要满足这些条件:

  • 包含 NDEF 格式数据的标签
  • 标签属于类型 1 至类型 5 中的一种
  • 硬件要求: iPhone 7 及 iPhone 7 Plus 以上

权限

要使用 Core NFC 首先需要申请权限:

重要信息

  • Core NFC 基于会话(session)

  • 只能在前台状态下执行

  • 每个会话支持最长60s的扫描时间

  • 可支持单标签或多标签的读取:
    • 单标签:会话会在标签成功读取后立即结束;
    • 多标签:会话会在用户主动取消或达到60s后自动结束
  • 在 Info.plist 中填写的描述会被展示在应用最上层,如下图

  • 当读取成功后界面会发生改变

样例代码

使用 Core NFC 来读取标签仅需3步(不由得想到把大象放进冰箱的梗= =)

  1. 实现 NFCNDEFReaderSessionDelegate 协议
  2. 创建 NFCNDEFReaderSession 实例
  3. 启动 session ,处理代理回调

```swift
import CoreNFC

top Created with Sketch.