非常感谢大家利用自己宝贵的时间来阅读我的文章 , 这篇文章主要写我今天尝试性的用了一下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]);
}
基本上就是这些啦,希望看到的小伙伴能够给个反馈。
参考链接