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

iOS14系统下App无法接收后台通知信号,相关回调方法不触发求助

iOS14 后台静默推送不触发回调解决方案
  • 检查推送请求的apns-priority字段值:iOS14起静默推送(携带content-available=1)的优先级必须设为5,若设为10会被APNs直接丢弃,不会触发任何回调
  • 检查App的后台刷新权限:iOS14收紧了静默推送触发条件,必须确保系统设置>通用>后台App刷新中,全局后台刷新开关和当前App的开关均处于开启状态,否则静默推送会被系统拦截
  • 适配SceneDelegate场景:如果你的App使用了SceneDelegate(iOS13及以上默认启用多场景支持),仅实现AppDelegate的回调方法不会触发静默推送响应,需要额外在SceneDelegate中实现对应方法:
- (void)scene:(UIScene *)scene didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
    // 处理推送逻辑,及时调用completionHandler
    completionHandler(UIBackgroundFetchResultNewData);
}
  • 检查推送payload结构:iOS14对同时携带content-available=1和alert、sound、badge等可展示通知字段的混合推送做了策略调整,如果App处于后台且用户未主动点击通知,不会触发静默推送回调,纯静默推送需移除所有展示类字段
  • 检查回调方法的completionHandler调用时机:两个回调方法都必须在系统规定的30秒超时时间内调用completionHandler,iOS14对超时行为的惩罚更严格,多次超时会导致系统降低你的App静默推送配额,甚至长期拦截推送
  • 检查UNUserNotificationCenter代理设置:userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:方法生效的前提是启动时就将[UNUserNotificationCenter currentNotificationCenter].delegate设置为对应的实现对象,避免被其他逻辑覆盖代理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:18:00