LiveActivity
接口在 Scripting 中为您提供在 灵动岛 和 锁屏 上展示实时数据的能力,提供便捷的互动功能。LiveActivityState
定义 Live Activity 的状态:
active
: Live Activity 正在显示,并可接收更新。dismissed
: Live Activity 已结束,不再显示。ended
: Live Activity 虽仍可见,但不再更新。stale
: Live Activity 的内容已过期,需要更新。LiveActivityDetail
用于提供每个 Live Activity 实例的详细信息。
LiveActivityState
。LiveActivityUI
描述 Live Activity 的布局:
LiveActivityUIBuilder<T>
一个基于动态属性来构建 LiveActivityUI
的函数。
LiveActivityOptions
配置 Live Activity 的选项:
LiveActivityUpdateOptions
& LiveActivityEndOptions
与 LiveActivityOptions
类似,用于配置更新时的提醒方式(update
)及结束时的移除时机或其他选项(end
)。
LiveActivity
类使用一个 UI 构建函数(LiveActivityUIBuilder<T>
)来创建一个新的 Live Activity。
activityId: string | undefined
当调用 start
后,Live Activity 的 ID。
started: boolean
指示 Live Activity 是否已启动。
start(attributes: T, options?: LiveActivityOptions): Promise<boolean>
使用指定的属性和选项启动一个 Live Activity。若启动成功,返回 true
。
update(attributes: T, options?: LiveActivityUpdateOptions): Promise<boolean>
更新 Live Activity 的动态属性。如果在 options
中指定了提醒配置,则会向用户发送通知提醒。
end(attributes: T, options?: LiveActivityEndOptions): Promise<boolean>
结束一个正在运行的 Live Activity,可选地附加最终属性和结束选项。
getActivityState(): Promise<LiveActivityState | null>
获取当前 Live Activity 的状态。
addUpdateListener(listener: (state: LiveActivityState) => void): void
为 Live Activity 的状态变化添加一个监听器。
removeUpdateListener(listener: (state: LiveActivityState) => void): void
移除指定的状态更新监听器。
areActivitiesEnabled()
检查是否可以启动 Live Activity(由系统配置或限制决定)。
addActivitiesEnabledListener(listener: LiveActivityActivitiesEnabledListener)
当 Live Activities 的可用状态发生变化时,添加一个监听器进行监测。
getAllActivities()
返回当前所有处于活动状态的 Live Activities 数组。
getAllActivitiesIds()
返回当前所有活动 Live Activity 的 ID 列表。
endAllActivities(options?: LiveActivityEndOptions)
结束所有正在运行的 Live Activities。
在上述示例中,使用了相同结构的属性(status
、eta
、icon
),并在 start
、update
、end
三种场景下保持一致,以确保 Live Activity UI 能根据动态数据进行正确的展示和更新。