You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS:如何访问NFC标签生成的含DeepLink系统通知并实现删除?

iOS NFC系统通知的删除权限与替代方案

核心原因说明

iOS读取NFC标签时生成的系统通知,不属于UNUserNotificationCenter的管理范围——这个API仅负责处理当前APP通过UserNotifications框架发送的本地/远程通知。这就是你调用UNUserNotificationCenter.current().getDeliveredNotifications()返回空数组的根本原因。

针对问题的解答

  1. 读取标签时自动删除此前同类系统通知
    没有直接可行的方案。这类通知是iOS系统(CoreNFC相关进程)生成的,APP没有权限干预或删除系统级别的通知生命周期,iOS也未提供相关开放API。

  2. 点击通知后从APP内删除该通知
    同样无法实现。系统生成的NFC通知记录不归当前APP管理,无法通过UserNotifications框架的API删除通知中心内的对应条目。

替代实现方案

如果需要实现“读取标签时替换旧通知”或“APP内管理通知”的效果,建议绕过系统自动通知,改为自定义本地通知:

  • 在CoreNFC的读取回调方法(如readerSession(_:didDetect:))中,先调用UNUserNotificationCenter.current().removeDeliveredNotifications(withIdentifiers:)删除之前的同类自定义通知(给同类通知设置统一的标识符)。
  • 再创建并发送新的本地通知,通知内容关联DeepLink跳转逻辑。
  • 这种方式下,所有通知都由APP自主管理,既可以实现读取时自动替换旧通知,也能在用户点击通知进入APP后,通过UNUserNotificationCenter的API删除对应通知。

内容的提问来源于stack exchange,提问作者JamesDerrick248

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 18:40:59