概览
- Live Activities 可以展示app的最新数据在 iPhone的 LockScreen 锁屏上 和 Dynamic Island 灵动岛上。
- 使用Live Activities 功能需要依赖Widget Extension,你可以在原有WidgetExtension上添加或者新建一个。
- ActivityKit用于管理Live Activities的生命周期。(request、update、end)
须知和约束
- 一个Live Activity可以存活8小时,除非app关掉或者用户关掉。超过8小时后,系统会自动关闭这个Live Activity。但是,Live Activity的UI在系统关闭后的4小时仍会在LockScreen 锁屏上展示。
所以在LockScreen总时长可到12小时。 - Live Activity是一个沙盒,需要通过ActivityKit framework 或者 remote push notifications 远程推送
- Live Activityies 在不同手机上展示不一样。LockScreen是所有设备都会展示的。而支持Dynamic Island灵动岛的设备,则会多出灵动岛的展示。开发者需要适配所有设备的Views展示。
Live Activities制作
- 建立Widget Extension
- Info.plist 中加入 Supports Live Activities,设置为 YES
- 使用ActivityAttributes
- 建立ActivityConfiguration
- 用代码实现你的Live Activities
·ActivityAttributes
就是Live Activity元数据,包含初始数据 与 ContentState(更新数据)
ActivityConfiguration
· 用于配置View,View分两块,Lock Screen 与 DynamicIsland
Lock Screen 的view,用SwiftUI实现即可
DynamicIsland分为三类:
ExpandView:长按DynamicIsland会触发Expand
CompactLeading/CompactTrailing:普通样式,一左一右
Minimal:存在多个LiveActivities会触发
调用Live Activities:
·start:开启一个Live Activity,通过Activity.request方法实现
·update:更新Live Activity的数据,Activity.activities,update方法实现
·end:结束Live Activity的数据,Activity.activities,end方法实现