【转】iOS NFC
原文网址:iOS NFC (juejin.cn)
概述
iOS 在 iOS11(iPhone7/iPhone7 Plus) 之后开放 NFC 主动扫描功能
并且在 iOS13(iPhoneXS/iPhoneXR) 后开放NFC 后台扫描功能。
时间表对照
所以在 iOS 端通常有两个业务场景:
主动扫描:用户主动打开 App 并开启 NFC 功能扫描
场景为 :设备中主动打开我们的 App 并开始 NFC 扫描进程,然后可以识别到靠近的 NFC 标签中的数据。
最低硬件要求:
系统版本: iOS 11
硬件: iPhone 7 及以上
后台扫描:用户不打开 App,通过手机扫描弹窗后,打开 App
场景为 :设备中不打开 App,靠近 NFC 标签后,手机出现弹窗,然后提示打开相关的 App,并传入数据。(类似使用手机刷卡地铁进站时,会弹出北京通)
后台模式扫描要求:
硬件: iPhoneXS/iPhoneXR 及以上
NFC 芯片存储容量
芯片中存储内容的大小限制,主要由芯片类型确定,市场上主要有以下几种主流的容量:
- 144 字节 --- 使用 NXP NTAG 203/213 芯片 主要用来网址标签、蓝牙配对标签 如 门禁钥匙扣、电梯卡
- 888 字节 --- 使用 NXP NTAG 216 芯片 主要用来 多任务标签、NFC 电子名片(包含姓名、手机、邮箱等)、华为一碰传贴纸(电脑手机传输文件)、小米碰碰贴(可以自定义动作标签,如开关蓝牙,打开 WiFi )等。
- 4000/8000 字节 --- 其他类芯片 可以用来存储图片等(暂时没有找到商业应用场景)。
一个包含了姓名、电话、邮箱、公司名称、邮箱、网址的NFC标签会占有约 159 字节的容量。
数据格式要求: NDEF
iOS 目前只支持 NDEF 格式的内容
NDEF 格式
NDEF 格式是 NFC FROUM 发布的一个通用 NFC 数据传输格式,支持 UTF-8 编码、Unicode 编码,内容支持文本内容、URI 内容,甚至支持图片内容。
更为详细的,这篇文章里讲解的更细致: www.pianshen.com/article/860…
NDEF 的文本格式
这是整体的文本数据格式,第一个字节用来描述数据的状态;后面的 n-1 个字节用来描述语言的编码,如英语、还是日语、汉字;最后面不固定长度,
上面的是文本格式下,状态字节的具体编码格式。
NDEF 的 URI 格式
限制
这些情况下无法使用后台 NFC 功能:
- 重启手机后,没有解锁过
- 有一个 NFC 进程正在运行
- Apple 钱包正在使用
- 相机正在使用
- 飞行模式下
具体 iOS NFC 开发流程
- AppleID 开通 NFC Tag Reading 功能。
- 工程进行描述文案等配置。
- 代码开发。
- 如果需要支持后台扫描,还需要支持 Universal Link 功能。
注意点
1.Apple NFC 不支持支付相关的业务场景,如扫描银行卡进行 NFC 支付功能。 2.同时只能存在一个扫描进程 Session。
3.一个扫描进程 Session 只能存在 60s,超过后需要重新开启一个。
4.可以配置同时扫描多个或者单个 tag,配置单个时,识别到一个 tag 后会停止。
参考文章
作者:落寒
链接:https://juejin.cn/post/6914233111191584781
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。