ios NFC嘗試

weixin_34120274發表於2017-09-21

非常感謝大家利用自己寶貴的時間來閱讀我的文章 ,  這篇文章主要寫我今天嘗試性的用了一下ios11出的coreNFC,閱讀中如果發現什麼錯誤和可優化的地方 , 希望可以得到你的指點 , 有任何不妥的地方 歡迎指正。喜歡的可以關注下我的簡書我的部落格

昨天IOS11開始推送升級了,不知道小夥伴們都升級了麼,果斷先把SE測試機升級了,然後索性把xcode9也升了,看了看X的模擬器,一個字,醜。。。然後就是錄屏、AR什麼,最後想起了蘋果一直藏著掖著的NFC功能,那肯定是要搞搞事情的啊,因為剛開始沒看開發者文件,最後在我的6s上試了一下發現不支援,wtf,最後去官方文件中看到了這麼一句

Reading NFC NDEF tags is supported on iPhone 7 and iPhone 7 Plus.

很鬱悶很火大,可憐窮*的我和公司,都沒有支援機型啊,有支援裝置的小夥伴可以試一下看看行不行,能把結果告訴我一下那就再好不過了,好了現在看看怎麼做

首先,去開發者中心註冊支援NFC功能的APPID,流程如下圖所示

5586027-94a83d73d99c0718.jpg
5586027-c5eb94f628131921.jpg

回到工程裡,在plist裡新增請求許可權欄位NFCReaderUsageDescription,然後新增型別為array的com.apple.developer.nfc.readersession.formats的欄位,然後新增一個item為NDEF


5586027-ce3a193ad53c9ec5.jpg

然後按照下圖進行配置

5586027-71221f98f2849b27.jpg

程式碼:

#import  <CoreNFC/CoreNFC.h>

@interface ViewController () <NFCNDEFReaderSessionDelegate>

初始化

_session = [[NFCNDEFReaderSession alloc] initWithDelegate:self queue:dispatch_queue_create(NULL, DISPATCH_QUEUE_CONCURRENT) invalidateAfterFirstRead:NO];

_session.alertMessage = @"我要NFC許可權";


開始

[_session beginSession];

結束

[_session invalidateSession];

代理方法

- (void)readerSession:(NFCNDEFReaderSession *)session didDetectNDEFs:(NSArray*)messages

{

for (NFCNDEFMessage *message in messages) {

for (NFCNDEFPayload *payload in message.records) {

NSLog(@"Payload data:%@",payload.payload);

}

}

}

- (void)readerSession:(NFCNDEFReaderSession *)session didInvalidateWithError:(NSError *)error

{

NSLog(@"%@",[error description]);

}

基本上就是這些啦,希望看到的小夥伴能夠給個反饋。

參考連結

iOS 11 Core NFC - any sample code?

相關文章