iOS NFC淺析

本篇文章共分為三個(gè)部分,讀者可根據(jù)需要直接閱讀對(duì)應(yīng)部分:

1. iOS 對(duì)NFC支持的現(xiàn)狀

2.NFC基本概念與相關(guān)術(shù)語(yǔ)

3.iOS NFC 開(kāi)發(fā)實(shí)踐

下面是正文:

一赌蔑、iOS 對(duì)NFC支持的現(xiàn)狀

2017年帮寻,WWDC正式發(fā)布了iOS11,在SDK中首次開(kāi)放了NFC功能,開(kāi)發(fā)者可通過(guò)Core NFC FrameWork 使用NFC功能字币。不過(guò)不要高興太早耐亏,此次發(fā)布的版本支持的功能非常保守转晰,只支持 NFC Tag Reading 功能龟糕。

支持機(jī)型:

?iPhone 7 及后續(xù)發(fā)布機(jī)型(雖然iPhone 6開(kāi)始已經(jīng)有NFC硬件桐磁,但是Apple 出于某些原因,6讲岁,6plus不開(kāi)發(fā)此功能)

支持方式:

?iOS 11 需要安裝APP才能使用(安卓系統(tǒng)已經(jīng)內(nèi)建了支持)我擂,APP使用NFC時(shí)需要主動(dòng)打開(kāi)一個(gè)session才能進(jìn)行讀取tag,并且APP必須在前臺(tái)(foreground)狀態(tài)下催首,一旦APP進(jìn)入background或退出扶踊,session將自動(dòng)終止(安卓則可以在后臺(tái)一直進(jìn)行輪詢)。

二郎任、NFC基本概念與相關(guān)術(shù)語(yǔ)

NFC是什么東東秧耗?

全稱?Near Field Communication (近場(chǎng)通訊),這個(gè)技術(shù)由非接觸式射頻識(shí)別(RFID)演變而來(lái)舶治,由飛利浦半導(dǎo)體(現(xiàn)恩智浦半導(dǎo)體公司)分井、諾基亞索尼共同研制開(kāi)發(fā)车猬,其基礎(chǔ)是RFID及互連技術(shù)。近場(chǎng)通信(Near Field Communication,NFC)是一種短距高頻的無(wú)線電技術(shù)尺锚,在13.56MHz頻率運(yùn)行于10厘米距離內(nèi)珠闰。

NFC Tag?

NFC tags are cheap, passive RFID tags that are stuck on, or embedded into products, packaging, promotional items and many other physical things。

可以看到它是廉價(jià)的瘫辩、被動(dòng)式的RFID(射頻識(shí)別)Tag,粘貼或內(nèi)嵌如產(chǎn)品伏嗜,包裹,促銷品及許多其他實(shí)物伐厌,甚至像電影里一樣嵌入皮膚承绸。那么問(wèn)題又來(lái)了RFID Tags 是什么?

RFID Tag?

它由耦合元件及芯片組成挣轨,每個(gè)RFID標(biāo)簽具有唯一的電子編碼(全球唯一哦??)军熏,附著在物體上標(biāo)識(shí)目標(biāo)對(duì)象,俗稱電子標(biāo)簽或智能標(biāo)簽卷扮。RFID電子標(biāo)簽:有源標(biāo)簽荡澎,無(wú)源標(biāo)簽,半有源半無(wú)源標(biāo)簽晤锹。普通用的地鐵卡就是無(wú)源標(biāo)簽摩幔。 什么編碼這么牛X, 全球唯一?是EPC編碼抖甘。

EPC編碼热鞍?

EPC(Electronic Product Code)即電子產(chǎn)品編碼,是一種編碼系統(tǒng)衔彻。它建立在EAN.UCC(即全球統(tǒng)一標(biāo)識(shí)系統(tǒng))條型編碼的基礎(chǔ)之上薇宠,并對(duì)該條形編碼系統(tǒng)做了一些擴(kuò)充,用以實(shí)現(xiàn)對(duì)單品進(jìn)行標(biāo)志艰额。

它是下一代產(chǎn)品標(biāo)識(shí)代碼澄港,它可以對(duì)供應(yīng)鏈中的對(duì)象(包括物品、貨箱柄沮、貨盤(pán)回梧、位置等)進(jìn)行全球唯一的標(biāo)識(shí)。EPC 存儲(chǔ)在RFID標(biāo)簽上祖搓,這個(gè)標(biāo)簽包含一塊硅芯片和一根天線狱意。讀取 EPC標(biāo)簽時(shí),它可以與一些動(dòng)態(tài)數(shù)據(jù)連接拯欧,例如該貿(mào)易項(xiàng)目的原產(chǎn)地或生產(chǎn)日期等详囤。EPC所標(biāo)識(shí)產(chǎn)品的信息保存在EPCglobal網(wǎng)絡(luò)中,而EPC則是獲取有關(guān)這些信息的一把鑰匙。

WWDC解釋:

NFC實(shí)際上是一組不同的標(biāo)準(zhǔn)和協(xié)議藏姐。所有的標(biāo)準(zhǔn)共存隆箩,并用于不同的目的。

NFC text可歸納為5類羔杨,type1~type5.每一個(gè)類型對(duì)應(yīng)于一個(gè)不同的標(biāo)準(zhǔn)捌臊。

NFC Forum定義了NFC Data Exchange Format(NDEF)用來(lái)作為不同的NFC text類型數(shù)據(jù)交換的通用標(biāo)準(zhǔn)方式

使用場(chǎng)景:

上面一堆解釋,第一次聽(tīng)絕對(duì)是云里霧里的兜材,不過(guò)看看它能干什么就有整體印象了理澎。下面描述的是NFC的使用場(chǎng)景(不限于iOS,其中部分功能iOS不支持)

NFC工作模式有三種:

1.Reader/Writer mode(讀寫(xiě)器模式)iOS只支持reader模式

此模式可以讀取NFC Tag,也可寫(xiě)入Tag數(shù)據(jù)曙寡。(可以想象手機(jī)給地鐵卡充值矾端,它能讀取卡內(nèi)信息,也能寫(xiě)入數(shù)據(jù))卵皂,蘋(píng)果給出的使用的場(chǎng)景1.連接用戶到位置或上下文相關(guān)的內(nèi)容2.連接硬件設(shè)備3.倉(cāng)庫(kù)庫(kù)存追蹤。

2.Peer-to-Peer mode (點(diǎn)對(duì)點(diǎn)模式)? iOS 不支持

將兩個(gè)具備NFC功能的設(shè)備鏈接砚亭,能實(shí)現(xiàn)數(shù)據(jù)點(diǎn)對(duì)點(diǎn)傳輸灯变,如下載音樂(lè)、交換圖片或者同步設(shè)備地址薄捅膘。

3.Card-emulation mode (卡模擬模式)iOS不支持

可以將具備NFC功能的設(shè)備當(dāng)做只能卡或者IC卡添祸,比如地鐵卡,信用卡寻仗,門(mén)禁卡刃泌。

NFC是怎么檢測(cè)到Tag的?

在NFC Tag(它是一種廉價(jià)署尤、被動(dòng)式的RFID tag, 就是一個(gè)集成電路)中有天線與電路耙替。當(dāng)拿具備NFC功能的手機(jī)或其他讀取器靠近時(shí),手機(jī)或讀取器發(fā)射高頻電磁波(射頻信號(hào))曹体,引發(fā)Tag內(nèi)的電路產(chǎn)生感應(yīng)電流(卡內(nèi)沒(méi)有電源俗扇,全靠讀取器發(fā)射的電磁波產(chǎn)生電流驅(qū)動(dòng)),Tag利用產(chǎn)生的電流發(fā)射出Tag內(nèi)存儲(chǔ)是數(shù)據(jù)箕别。

三铜幽、iOS NFC 開(kāi)發(fā)實(shí)踐

過(guò)程很簡(jiǎn)單,不過(guò)需要注意一些方面:

1.tag reading是按需的串稀,你需要自己?jiǎn)?dòng)一個(gè)tag reading操作除抛。

2.tag reading session需要在foreground時(shí)啟動(dòng)。

3.應(yīng)用進(jìn)入后臺(tái)或退出母截,session將終止到忽。

4.每個(gè)session最多持續(xù)60秒,超時(shí)將終止微酬。

5.可配置session讀取一個(gè)tag或多個(gè)tag,當(dāng)設(shè)置讀取一個(gè)tag時(shí)绘趋,讀完后session自動(dòng)終止颤陶,若讀取多個(gè)tag,則會(huì)持續(xù)直到用戶取消或超過(guò)60秒。

6.session終止后陷遮,若要再讀取滓走,需要?jiǎng)?chuàng)建一個(gè)新的session并開(kāi)啟。

7.info.plist中設(shè)置的描述將在讀取時(shí)顯示給用戶帽馋。

開(kāi)發(fā)配置:

配置項(xiàng)目:2個(gè)步驟

1.需要在Xcode打開(kāi)Near Field Communication Tag Reading Capability(剛發(fā)布的xcode中不含此選項(xiàng)搅方,請(qǐng)自行添加)

2.info.plist設(shè)置隱私選項(xiàng)Scan UsageDescription

開(kāi)發(fā): 2個(gè)步驟

1.設(shè)置一個(gè)delegate adopt NFCNDEFReaderSessionDelegate Protocol

2.創(chuàng)建一個(gè)NFCNDEFReaderSession,調(diào)用begin方法

3.實(shí)現(xiàn)代理方法,處理對(duì)應(yīng)回調(diào)绽族。

最后附上相關(guān)參考資料:

?WWDC Session

NFC Card Emulation 解釋

NFC 在iPhone上如何工作

GitHub Demo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末姨涡,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子吧慢,更是在濱河造成了極大的恐慌涛漂,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件检诗,死亡現(xiàn)場(chǎng)離奇詭異匈仗,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)逢慌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)悠轩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人攻泼,你說(shuō)我怎么就攤上這事火架。” “怎么了忙菠?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵何鸡,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我牛欢,道長(zhǎng)音比,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任氢惋,我火速辦了婚禮洞翩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘焰望。我一直安慰自己骚亿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布熊赖。 她就那樣靜靜地躺著来屠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上俱笛,一...
    開(kāi)封第一講書(shū)人閱讀 48,970評(píng)論 1 284
  • 那天捆姜,我揣著相機(jī)與錄音,去河邊找鬼迎膜。 笑死泥技,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的磕仅。 我是一名探鬼主播珊豹,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼榕订!你這毒婦竟也來(lái)了店茶?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤劫恒,失蹤者是張志新(化名)和其女友劉穎贩幻,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體两嘴,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡段直,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了溶诞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡决侈,死狀恐怖螺垢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情赖歌,我是刑警寧澤枉圃,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站庐冯,受9級(jí)特大地震影響孽亲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜展父,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一返劲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧栖茉,春花似錦篮绿、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春吼虎,著一層夾襖步出監(jiān)牢的瞬間犬钢,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工思灰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留玷犹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓官辈,卻偏偏與公主長(zhǎng)得像箱舞,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拳亿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容