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

iOS应用被杀掉时,如何通过推送通知移除/结束锁屏Live Activity

iOS Live Activity event: end推送不生效问题排查与修复

问题核心

应用被杀状态下,Live Activity的update推送正常,但end推送仅修改状态数据,无法移除锁屏上的Live Activity弹窗。提供的原始payload如下:

{
"aps": {
"timestamp": 1168364460,
"event": "end",
"relevance-score": 75.0,
"stale-date": 1650998941,
"content-state": {
"driverName": "Anne Johnson",
"estimatedDeliveryTime": 1659416400
},
"alert": {
"title": "Delivery Update",
"body": "Your pizza order will arrive soon.",
"sound": "example.aiff"
}
}
}

关键修复点

  • 修正时间戳有效性
    原始payload中的timestamp(对应2007年)和stale-date(对应2022年)均为过期时间戳,系统会判定这类时间无效,导致end事件不被执行。必须将这两个值设置为当前时间附近的Unix秒级时间戳,且stale-date需小于等于当前时间,触发Live Activity的过期移除逻辑。

  • 移除冗余字段
    alert和content-state在end事件推送中完全多余:

    • alert会触发普通通知弹窗,干扰系统处理Live Activity的结束逻辑;
    • content-state在活动结束后无需更新状态,反而可能增加系统处理负担。
  • 确认推送令牌正确性
    必须使用Live Activity生成的专属推送令牌(而非应用全局APNs令牌)发送end推送,否则系统无法定位到对应的Live Activity实例。

修正后的end事件payload示例

{
  "aps": {
    "timestamp": 1720000000, // 替换为当前时间的Unix秒级时间戳
    "event": "end",
    "relevance-score": 0.0, // 结束时设为0,标记活动不再相关
    "stale-date": 1720000000 // 设为当前时间或更早,触发过期移除
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 21:17:19