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

发送APNS静默通知时如何检测设备上应用是否已卸载?

APNS静默通知如何检测应用卸载

问题说明

你的静默通知负载示例如下:

$silent_notification_message_array = [
    'aps' => [
        'content-available' => 1
    ],
    "call_status" => "disconnected"
];

发送该通知时,即便应用已卸载,依然收到200状态码,这是APNS对静默通知的特殊处理逻辑导致的。

关键原因

APNS对普通通知和静默通知的有效性验证逻辑不同:

  • 普通通知(含alert等用户可见字段)发送后,若应用已卸载,APNS会返回410 Gone状态码,附带Unregistered原因,同时标记该设备令牌失效。
  • 但仅包含content-available:1的静默通知,APNS不会执行令牌有效性校验,也不会尝试推送到设备,所以无论应用是否存在,都会返回200状态码。

可行检测方案

  • 定期发送轻量验证通知:每隔一段时间给目标令牌发送一条带空alert和sound的普通通知(不会打扰用户),如果收到410 Gone或Unregistered错误,即可判定应用已卸载,将该令牌标记为失效。
  • 监听APNS错误响应:在批量发送通知时,逐一检查APNS返回的响应,收集所有返回卸载相关错误的令牌,统一清理。
  • 客户端主动上报:在应用启动、后台唤醒时,让客户端向你的服务器发送令牌有效性确认请求,服务器以此更新令牌状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 13:27:03