概覽
- Live Activities 可以展示app的最新數(shù)據(jù)在 iPhone的 LockScreen 鎖屏上 和 Dynamic Island 靈動島上世剖。
- 使用Live Activities 功能需要依賴Widget Extension钩述,你可以在原有WidgetExtension上添加或者新建一個叁扫。
- ActivityKit用于管理Live Activities的生命周期。(request、update的诵、end)
須知和約束
- 一個Live Activity可以存活8小時,除非app關掉或者用戶關掉愧捕。超過8小時后奢驯,系統(tǒng)會自動關閉這個Live Activity申钩。但是次绘,Live Activity的UI在系統(tǒng)關閉后的4小時仍會在LockScreen 鎖屏上展示。
所以在LockScreen總時長可到12小時撒遣。 - Live Activity是一個沙盒邮偎,需要通過ActivityKit framework 或者 remote push notifications 遠程推送
- Live Activityies 在不同手機上展示不一樣。LockScreen是所有設備都會展示的义黎。而支持Dynamic Island靈動島的設備禾进,則會多出靈動島的展示。開發(fā)者需要適配所有設備的Views展示廉涕。
Live Activities制作
- 建立Widget Extension
- Info.plist 中加入 Supports Live Activities泻云,設置為 YES
- 使用ActivityAttributes
- 建立ActivityConfiguration
- 用代碼實現(xiàn)你的Live Activities
·ActivityAttributes
就是Live Activity元數(shù)據(jù),包含初始數(shù)據(jù) 與 ContentState(更新數(shù)據(jù))
ActivityConfiguration
· 用于配置View狐蜕,View分兩塊宠纯,Lock Screen 與 DynamicIsland
Lock Screen 的view,用SwiftUI實現(xiàn)即可
DynamicIsland分為三類:
ExpandView:長按DynamicIsland會觸發(fā)Expand
CompactLeading/CompactTrailing:普通樣式层释,一左一右
Minimal:存在多個LiveActivities會觸發(fā)
調(diào)用Live Activities:
·start:開啟一個Live Activity婆瓜,通過Activity.request方法實現(xiàn)
·update:更新Live Activity的數(shù)據(jù),Activity.activities贡羔,update方法實現(xiàn)
·end:結束Live Activity的數(shù)據(jù)廉白,Activity.activities,end方法實現(xiàn)