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

iPhone锁屏时Silent push notification无法触发问题求助

iOS 静默推送锁屏不触发问题解决指南
  • 校验推送Payload格式
    静默推送必须携带content-available: 1,且不能包含alert、sound、badge这类会触发用户通知的字段——如果有这些字段,系统会判定为普通通知,锁屏时不会唤醒App执行回调。正确的Payload示例:

    {
      "aps": {
        "content-available": 1
      },
      "custom_param": "your_custom_data"
    }
    
  • 确认后台权限配置

    1. 在Xcode的Signing & Capabilities面板中,开启Background Modes并勾选Remote notifications选项;
    2. 确保App启动时调用了UIApplication.shared.registerForRemoteNotifications()完成远程推送注册;
    3. 检查系统设置里的[你的App] > Background App Refresh是否开启,关闭状态下静默推送无法触发;另外设备开启低电量模式时,系统会严格限制后台活动,也会影响推送触发。
  • 检查回调方法实现

    • iOS 13及以上系统,需在SceneDelegate中实现scene(_:didReceiveRemoteNotification:fetchCompletionHandler:)方法;iOS 12及以下则在AppDelegate中实现application(_:didReceiveRemoteNotification:fetchCompletionHandler:)方法。必须调用传入的fetchCompletionHandler,否则系统会认为你的App处理超时,后续会限制推送唤醒次数。
    • 锁屏时Xcode控制台可能不会实时输出日志,建议改用本地文件日志或远程日志平台验证回调是否执行,避免误判。
  • 关于系统缓存与节流
    锁屏时iOS为了省电,会对静默推送进行节流处理,可能合并或延迟推送,直到设备解锁、网络切换等时机才批量触发,这是系统原生机制无法完全绕过。你解锁后看到重复日志,就是因为系统缓存了锁屏期间的推送,属于正常现象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 16:27:08