非常感謝大家利用自己寶貴的時間來閱讀我的文章 , ?這篇文章主要寫我今天嘗試性的用了一下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,流程如下圖所示
回到工程里,在plist里添加請求權限字段NFCReaderUsageDescription,然后添加類型為array的com.apple.developer.nfc.readersession.formats的字段,然后添加一個item為NDEF
然后按照下圖進行配置
代碼:
#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]);
}
基本上就是這些啦,希望看到的小伙伴能夠給個反饋。
參考鏈接