是否可以隐藏 NFC 读取会话的 iOS 系统警报

Is it possible to hide iOS system alert for NFC reading session

当您成功完成 NFC 阅读课程后,您会看到类似这样的内容:

这将覆盖当前显示的 ViewController 约 3 秒。有趣的是,这种行为是不一致的,因为如果阅读会话结束得非常快,这个 window 会立即消失。

这意味着我无法确定此叠加层会保留多长时间,这对我们应用的用户体验设计不利。

问题很简单:有没有办法强制此覆盖消失或至少处理它消失的事件(而不是 NFC 会话结束时)?

我找到了一种有趣的方法来隐藏 window。需要 2 个简单的步骤:

1) 初始化 reader 会话时将最后一个参数设置为 false:NFCNDEFReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: false)

2) 在 readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) 的正文中你应该调用 session.invalidate().

就是这样。它会像您点击 Cancel/Done 一样工作 - 系统 window 将立即消失。