iOS 11中的核心NFC已淘汰! — WWDC 2017

您可能已经听说CoreNFC已在Beta中发布,并且只能在iPhone 7和iOS 11上运行!

是Apple强迫用户迁移到最新智能手机的策略,还是一个真正的硬件问题,使iPhone 6s无法使用NFC? 这是一个悬而未决的问题,但是在不久的将来,iPhone 7将成为最受欢迎的iPhone,但仍然!

一段时间以来,当公司想要在产品上实现NFC标签读取时,总是会遇到功能退回的情况。 在实践中是什么意思? 适用于iOS App的QR Code和App方案以及适用于Android的NFC!。这次结束了! 。

好吧,它如何工作? 如我们所知,Apple有任何限制:)。

答案是不 ! 当然,除了NFC付款。 但是,您可能需要在Apple Development Portal中进行一些额外的配置。

组态

首先,您需要按照以下说明创建或修改现有的应用ID,以激活NFC读取功能

然后,您在Xcode 9(撰写此博客时为Beta)上创建一个Playground或一个新项目。

我们将创建一个名为NFCReader的小类,该类将负责处理NFC Reading处理

首先,我们将创建该类并导入CoreNFC框架。

因此,NFC阅读由NFC阅读器会话管理。 我们只是在初始化类时进行基本的初始化。

该会话具有一个代理(将在下面进行说明)和一个名为invalidateAfterFirstRead的属性 此属性允许您的应用程序仅读取一次标签。 您是否可以激活它,这完全取决于您的App

完成此操作后,我们将开始会话。 考虑到实际的应用程序,此操作可能在其他位置并经过特定用户交互之后执行。

根据文档所述,CoreNFC框架会继续编译并仅在实际设备上起作用 ,这继续之前的重要提示 因此,这意味着您必须在目标前面的通用iOS设备上才能使用iOS 11 Beta构建或成为真实设备。

委托实施

CoreNFC具有两个主要的委托函数,可让您知道NFC数据是否已交换或会话是否无效。

然后,利用有效负载信息,您可以在应用程序中做任何您想做的事情。

好吧,这对于接收有效载荷数据和进行会话管理非常有用,但是我怎么知道我检测到周围的标签?

NFCNDEFReaderSession是基于其具体类NFCReaderSession的 并拥有自己的泛型委托:

而已 ! 如您所见,在iOS中集成NFC并不复杂。 您只需要等待iOS 11发布,然后专注于NFC阅读实施和周围的动画!

啊,我几乎忘记了,但是它在Apple Watch OS 4上也可以使用! 太酷了!