Core NFC在iOS 11中引入,用于处理NFC阅读Tag。由于目前只开放了读的权限,所以Core NFC是非常轻量级的一个框架。
NFC
上图是WWDC上苹果提供的NFC技术细分图,由于苹果支持所有格式的Tag,所以只需做大致了解即可。
使用NFC前需要注意一下几点:
-
需要开启一个session,与其他session类似,同时只能开启一个
-
需要App完全在前台模式
-
每个session最多扫描60s,超时需再次开启新session
-
配置读取单个或多个Tag,配置为单个时,会在读取到第一个Tag时自动结束session
-
隐私描述(后文会写到如何配置)会在扫描页面显示
第一步需要配置Capabilities
使用NFC,第一步需要配置Capabilities,这会自动为你生成entitlements文件中的必要配置。同时为你的App ID激活相关功能。
Capabilities
第二步打开隐私相关设置
第二步需要打开隐私相关设置,向info.plist中添加Privacy – NFC Scan Usage Description。
info.plist
第三步引入Core NFC
import CoreNFC
第四步实现NFCNDEFReaderSessionDelegate。
public protocol NFCNDEFReaderSessionDelegate : NSObjectProtocol { public func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error) public func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) }
第五步开始一个session
invalidateAfterFirstRead设为true时,会在首次识别时自动停止session,并在readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error)方法中抛出NFCReaderSessionInvalidationErrorFirstNDEFTagRead错误。
let session = NFCNDEFReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: true)
session?.begin()
目前Xcode Beta版本的第一个release并不支持Core NFC开发,文档已经可以查看。
本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » iOS NFC开发——Core NFC