有一些替代方案可以使用硬件配件在iPhone6上实现标签发现。我在这篇博客文章中谈到了这些集成以及开发人员如何构建解决方案。我们的低功耗读写器设计为移动参与提供了有趣的机会,但很少有开发人员考虑。
声明:我是Flomio,Inc.的创始人,这是一个TechStars公司,为从访问控制到支付等各种应用提供接近识别硬件、软件和服务。
更新:这个谣言如果属实,将使iPhone几乎支持NFC标签发现模式的可能性增加。全玻璃设计不会像当前iPhone的金属背板那样干扰NFC天线。我们已经尝试过这种设计方法,尽管使用了更便宜的材料,但在一些自定义读写器设计中取得了成功,期待这种改进。
更新:iOS11宣布支持iPhone7 / 7+的“NFC读取器模式”。详情请看这里。API仅支持在应用程序处于前台时读取NDEF消息(无ISO7816 APDU),而不支持后台检测。将于2017年秋季发布...请查看WWDC主题演讲的屏幕截图:披露:我是GoToTags的首席执行官,这是一家NFC公司,对苹果开放NFC给开发者具有明显的利益。
---更正和更新---
酒店应用实际上使用的是蓝牙而不是NFC。 NFC仍然经常用于开锁,只是在这个例子中没有使用NFC。如果手表有一个开放的NFC控制器,那么可以使用NFC。
我知道苹果已经意识到这一问题,并正在与他们的顶级开发人员和利益相关者讨论。由于缺乏对标签阅读的支持,已经出现了大规模的负面反响。过去常见的情况是,我预计苹果最终会向开发人员开放此功能,以供非支付相关的功能使用(如阅读标签、配对)。但我不认为苹果会允许其他钱包的存在。文件共享可能也只能留给AirDrop来完成。目前,NFC控制器没有开放访问权限。 iOS 8 GM SDK 中当前没有 NFC API - 这表明在发布初期,NFC功能将仅限于Apple Pay。这是我们的理解。
显然,iPhone 6内部的NXP芯片可能能够做更多事情,因此这并不意味着其他功能(配对、标签扫描/编码)不会在发布或不久的将来添加。
iOS 11新增了读取NFC标签的功能,只有iPhone 7和7 Plus支持
我创建了这个仓库来测试
首先,我们需要初始化NFCNDEFReaderSession类
var session: NFCNDEFReaderSession?
session = NFCNDEFReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: false)
那么我们需要通过以下方式开始会话:
session?.begin()
完成后:
session?.invalidate()
这个代理(应该由self实现)基本上有两个功能:
func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage])
func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error)
here is my reference Apple docs
我认为在我们能够访问NFC之前,还需要一些时间,因为它的纯安全性方面,例如能够走过某人身边,刷过他们并获取你的手机来扫描卡片详细信息,或者只需将你的手机挥动到某人留在桌子上的钱包上。
我认为第一步是苹果与银行交谈,并找到更多保护卡片和NFC的方法,然后才会允许这样做。