原文網址: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
來源:掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。