iOS 实时活动

在锁屏上展示完整进程

Pushwoosh 为订单、行程或比赛启动并更新一张实时卡片,与其他推送共用同一活动和旅程。只要事件仍在进行,iOS 就会把它保留在锁屏和灵动岛中。

三部并排的 iPhone 屏幕展示 Live Activity:处于骑手配送阶段的外卖订单、司机还有两分钟到达的行程、实时比赛比分,以及收缩在灵动岛中的同一活动

超过 80,000 家企业借助 Pushwoosh 扩大用户互动

实时活动全解析

普通推送只说一次“某件事发生了”。Live Activity 会持续地说——只要订单、行程或比赛还在进行,锁屏上的同一张卡片就会不断自我更新。

本地启动

在 App 内通过 ActivityKit 启动活动,支持 iOS 16.1 及以上版本。

推送启动(Push-to-start)

在 App 关闭时通过基于 Token 的推送开启活动,支持 iOS 17.2 及以上版本。

实时内容更新

随着事件推进,/updateLiveActivity 原地改写同一张卡片。

整个细分共用一张卡片

向共享的 activity ID 推送一次,所有运行该活动的设备同步更新。

锁屏与 Watch 同步

一个活动在多个触点间保持同步,包括 watchOS 11 上的 Apple Watch 智能叠放。

一个 Token 辅助方法

setup() 自动追踪并刷新 push-to-start 和 push-to-update Token。

Live Activity 处于推送与全屏之间的哪个位置

当消息是发送什么在哪里呈现
一次状态变化,说一次即可普通推送横幅,随后进入锁屏通知列表
值得配图的一次变化富媒体推送展开的通知
用户一键就能做出的选择交互式推送通知上的按钮
持续几分钟到几小时的进行中事件Live Activity锁屏和灵动岛中的一张卡片,原地自我更新
用户之后会回看的记录Message InboxApp 内的列表
详情、表单或布局应用内消息App 内的全屏
当消息是
1 / 6
一次状态变化,说一次即可
发送什么
在哪里呈现
横幅,随后进入锁屏通知列表
当消息是
2 / 6
值得配图的一次变化
发送什么
在哪里呈现
展开的通知
当消息是
3 / 6
用户一键就能做出的选择
发送什么
在哪里呈现
通知上的按钮
当消息是
4 / 6
持续几分钟到几小时的进行中事件
发送什么
Live Activity
在哪里呈现
锁屏和灵动岛中的一张卡片,原地自我更新
当消息是
5 / 6
用户之后会回看的记录
发送什么
在哪里呈现
App 内的列表
当消息是
6 / 6
详情、表单或布局
发送什么
在哪里呈现
App 内的全屏

在用户旅程中发挥作用

一个旅程覆盖两大平台

Live Activity 是您已在发送的消息的一个属性,而不是一项独立集成。受众、触发器、细分和用户档案都保持不变,形式决定事件进行期间消息的样子。

iPhone 收到 Live Activity,Android 16 手机收到 Live Update,旧设备收到标准推送——全部来自运行您的 推送、应用内消息 和邮件的同一个 Customer Journey。对 iOS 与 Android 用户并存的海外市场来说,这意味着一套流程覆盖全部用户。

一笔订单的全流程

以出海外卖或配送 App 为例:餐厅接单后,旅程通过 push-to-start 调用开启 Live Activity。

一条静默推送在后台预热骑手数据,用户察觉不到,因此第一次更新就带着真实的名字和真实的预计到达时间。随后“制作中”“骑手已接单”“还有两分钟到达”依次改写同一张卡片。Apple 规定 Live Activities 只能用于当前事件,因此下一单的加购推荐要作为同一旅程中的应用内消息运行,而不能放在卡片上。送达事件结束活动,并把收据留在 Message Inbox 中。

适用场景

只有当某件事确实正在进行、并且是用户自己发起的——订单、行程、已开赛的比赛——Live Activity 才有用武之地。Apple 把这个触点限定于此:不能发公告,不能发优惠,不能发用户没有主动发起的任何内容。

场景卡片承载的内容用户的操作
外卖配送:进行中的订单已接单、制作中、骑手已接单、即将送达看一眼锁屏,不用重新打开 App
网约车:行程进行中司机在路上、预计到达时间、行程进度看灵动岛,而不是地图页面
跨境电商:购买之后已发货、派送中、还剩几站、已送达在锁屏上追踪包裹,知道什么时候该在家
交易平台:同时有多笔订单每个包裹一张卡片,分别来自不同卖家追踪在不同日期到达的包裹
航空公司:航班当天登机口、登机、延误、行李转盘在嘈杂的航站楼里通过锁屏查看登机口
共享汽车:租用进行中计时中、油量或电量、剩余时间、还车点不打开 App 就能查看租用倒计时
体育直播:比赛进行中比分、时间、节次锁着屏幕也能跟进比赛
体育竞猜:滚球投注注单状态、实时赔率、提前兑现窗口在窗口关闭前完成提前兑现
场景
1 / 8
外卖配送:进行中的订单
卡片承载的内容
已接单、制作中、骑手已接单、即将送达
用户的操作
看一眼锁屏,不用重新打开 App
场景
2 / 8
网约车:行程进行中
卡片承载的内容
司机在路上、预计到达时间、行程进度
用户的操作
看灵动岛,而不是地图页面
场景
3 / 8
跨境电商:购买之后
卡片承载的内容
已发货、派送中、还剩几站、已送达
用户的操作
在锁屏上追踪包裹,知道什么时候该在家
场景
4 / 8
交易平台:同时有多笔订单
卡片承载的内容
每个包裹一张卡片,分别来自不同卖家
用户的操作
追踪在不同日期到达的包裹
场景
5 / 8
航空公司:航班当天
卡片承载的内容
登机口、登机、延误、行李转盘
用户的操作
在嘈杂的航站楼里通过锁屏查看登机口
场景
6 / 8
共享汽车:租用进行中
卡片承载的内容
计时中、油量或电量、剩余时间、还车点
用户的操作
不打开 App 就能查看租用倒计时
场景
7 / 8
体育直播:比赛进行中
卡片承载的内容
比分、时间、节次
用户的操作
锁着屏幕也能跟进比赛
场景
8 / 8
体育竞猜:滚球投注
卡片承载的内容
注单状态、实时赔率、提前兑现窗口
用户的操作
在窗口关闭前完成提前兑现

体育竞猜、交易、银行和远程医疗类用例在上线前需要合规审批——请尽早联系您的 Pushwoosh CSM。

卡片只完成了一半工作,另一半是您放进去的内容

50 个值得借鉴的推送通知案例,附每个案例的文案与创意思路。

获取案例

平台与技术支持

Live Activities 是 iOS 独有的触点,首先要对照您自己的安装用户检查的是最低版本要求。最后一列说明哪些情况下推送就是形式本身,哪些情况下推送只是驱动 App 中已有的组件。

能力iOSAndroid实现方式
原地更新的持续卡片iOS 16.1+,Live ActivityAndroid 16(API 36),Live Update推送,由 SDK 调用系统 live-activity API 渲染
无需打开 App 即可远程启动iOS 17.2+,push-to-start支持,从服务端启动仅支持基于 Token 的 APNs——Live Activities 不支持基于证书的配置
内容更新/updateLiveActivityMessages API 中的 OPERATION_UPDATE同一 activity ID 将每次更新与运行中的卡片关联
更新同一活动的所有用户向共享 activity ID 推送一次Android 按设备更新持有该 activity ID 的所有设备在下一次推送时重新渲染——没有单独的广播通道
常驻的紧凑指示器灵动岛(iPhone 14 Pro+)、Apple Watch 智能叠放状态栏小标签由系统根据实时活动呈现
小组件代码由开发人员使用 SwiftUI/WidgetKit 构建 Widget Extensionpushwoosh-liveupdates SDK 模块提供默认样式Apple 要求自定义小组件 UI;Android 使用系统进度样式
能力
1 / 6
原地更新的持续卡片
iOS
iOS 16.1+,Live Activity
Android
Android 16(API 36),Live Update
实现方式
推送,由 SDK 调用系统 live-activity API 渲染
能力
2 / 6
无需打开 App 即可远程启动
iOS
iOS 17.2+,push-to-start
Android
支持,从服务端启动
实现方式
仅支持基于 Token 的 APNs——Live Activities 不支持基于证书的配置
能力
3 / 6
内容更新
iOS
/updateLiveActivity
Android
Messages API 中的 OPERATION_UPDATE
实现方式
同一 activity ID 将每次更新与运行中的卡片关联
能力
4 / 6
更新同一活动的所有用户
iOS
向共享 activity ID 推送一次
Android
Android 按设备更新
实现方式
持有该 activity ID 的所有设备在下一次推送时重新渲染——没有单独的广播通道
能力
5 / 6
常驻的紧凑指示器
iOS
灵动岛(iPhone 14 Pro+)、Apple Watch 智能叠放
Android
状态栏小标签
实现方式
由系统根据实时活动呈现
能力
6 / 6
小组件代码
iOS
由开发人员使用 SwiftUI/WidgetKit 构建 Widget Extension
Android
pushwoosh-liveupdates SDK 模块提供默认样式
实现方式
Apple 要求自定义小组件 UI;Android 使用系统进度样式

安全与托管

Pushwoosh 运行在位于美国和德国的自有硬件上,遵循 GDPR。

ISO 27001:2022 CertifiedISO 27001 CertifiedGDPR CompliantData Privacy FrameworkHIPAA CompliantSOC 2 Type 2 CertifiedOWASP Compliant

工作原理

构建小组件是一次性的开发步骤。之后,三种操作都可以像旅程中的其他消息一样,通过 Control Panel 和 API 运行。

  1. 一次性构建小组件 (开发人员)

    按照 Apple 的 Live Activity attributes 模型,使用 ActivityKit 和 SwiftUI/WidgetKit 添加 Widget Extension。这一步需要开发人员——Apple 要求卡片使用您自己的 UI 代码。

  2. 从服务端驱动整个生命周期 (API)

    push-to-start 开启活动,/updateLiveActivity 改写活动,结束调用关闭活动,全部通过 Messages API 完成,并以同一个 activity ID 串联各项操作。setup() 会为您管理 push-to-start 和 push-to-update Token。

  3. 编排 (无代码)

    在与其他消息相同的 Customer Journey 中,针对同一细分和同一用户档案触发这些操作。同一流程的 Android 部分也从这个旅程运行,通过 Live Updates 实现。

需要了解的限制

这个触点本就设计得很窄,以下是它的边界。

  • 仅支持基于 Token 的 APNs 配置——基于证书的配置无法运行 Live Activities。
  • 卡片需要单独的 Widget Extension 和 SwiftUI/WidgetKit UI,由开发人员构建——没有可视化编辑器覆盖这一步。
  • Apple 把这个触点限定于当前正在进行、由用户发起的事件——卡片上不能放促销、加购推荐或聊天消息。
  • 一个活动最多运行约 8 小时,之后最多再以过期状态保留 4 小时,随后无论是否有更新,Apple 都会结束它。
  • iOS 18 将远程更新限制为大约每 5 到 15 秒一次。基于倒计时的活动(例如预计到达时间)在两次更新之间会在本地继续计时,不受影响。
  • 用户授权自动跟随 App 的推送权限,但用户仍可通过单独的开关自行关闭 Live Activities。
  • 报表可以看到每次启动、更新和结束调用。卡片本身不留下应用内互动标记,因此每次查看的互动数据需要通过您单独回传的事件获取。
在锁屏上展示完整进程

从与其他推送相同的活动和旅程中启动并更新实时卡片。

预约演示