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

UNNotificationServiceExtension通知过滤功能失效问题求助

远程通知过滤失效问题排查与解决

问题场景

我的远程通知过滤功能无法正常工作,推送的通知模型如下:

{
  "headers": {
     "apns-push-type": "alert"
  },

  "aps": {
    "alert": {
            "title": "Test title",
            "body": "You have received a new message."
    },
    "mutable-content": 1
  }
}

我能在UNNotificationServiceExtension的func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void)方法中捕获到该通知,但调用contentHandler(UNNotificationContent())后,通知仍然会显示在通知中心,无法实现过滤隐藏。

根据苹果官方文档说明:

要静默远程通知,向APNS服务器发送通知时必须将apns-push-type头字段设置为alert,否则系统总会向用户显示通知横幅。

我已按要求配置,但问题依旧。


可能的解决方向

1. 确认通知过滤权限是否开启

检查App的Entitlements文件,确保已添加com.apple.developer.usernotifications.filtering权限并设置为YES。没有这个权限的话,即使在Extension里返回空内容,系统也会强制展示原始通知。

2. 检查Extension代码逻辑

确保调用contentHandler时直接返回空的UNNotificationContent实例,不要先复制原始通知内容再修改。另外注意不要超出Extension的执行时限(约30秒),超时后系统会自动展示原始通知。

3. 验证APNS推送头信息是否正确

部分推送服务器配置可能存在疏漏,导致apns-push-type头没有正确发送到APNS。可以通过推送日志或抓包工具确认请求头中确实包含apns-push-type: alert。

4. 检查系统通知设置

确认用户没有在系统设置中给App开启「始终允许通知」等强制展示选项,部分iOS版本的系统设置会影响通知过滤功能的生效。

5. 确认iOS版本兼容性

通知过滤功能仅在iOS 15及以上版本支持,如果测试设备的iOS版本低于15,该功能不会生效,系统会直接展示通知。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 20:14:53