Live Activities - Dynamic Island Dev

by on under jekyll
1 minute read

Live Activities - Dynamic Island 灵动岛 开发教程

我的博客  https://xlsn0w.github.io/

概览 Live Activities

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制作

1. 建立Widget Extension
2. Info.plist 中加入 Supports Live Activities,设置为 YES
3. 使用ActivityAttributes
4. 建立ActivityConfiguration
5. 用代码实现你的Live Activities
6. ActivityAttributes

就是Live Activity元数据,包含初始数据 与 ContentState(更新数据)

ActivityConfiguration

用于配置View,View分两块,

1. Lock Screen 

2.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方法实现

我的博客 https://xlsn0w.github.io/

XLsn0w, Blog