iOS 灵动岛
一、简介
苹果在 iPhone 14 Pro 及 iPhone 14 Pro MAX 上推出了灵动岛。灵动岛将 iPhone 前置镜头和软件通知结合在一起的全新设计,用出色的交互设计掩盖硬件的缺陷,是一次交互玩法的革新。灵动岛可以通过点按、长按、轻扫来进行交互,最多支持两个应用同时“登岛”。
灵动岛全称 Dynamic Island,作为 iOS 中实时活动(Live Activities)功能的一部分,用来展示需要实时更新的消息。例如外卖配送信息,地图实时导航信息等。灵动岛有 3 种展现形式。
1.紧凑(Compact)
当系统只有 1 个实时活动的内容时,灵动岛默认使用紧凑模式。紧凑模式下UI由头部(Leading side)和尾部(Trailing side)组成,如图所示。用户可以点击灵动岛打开 App 查看实时活动的内容。
2. 最小化(Minimal)
当系统有多个实时活动的内容时,灵动岛自动切换使用最小化模式。最小化模式下由附着的头部(Leading(attached))和分割开的尾部(Trailing(detached))组成,如图所示。和紧凑模式一样,最小化模式也支持用户点击打开 App。
3.扩展(Expanded)
当用户在紧凑或最小化模式轻扫或长按灵动岛时,灵动岛可以切换成扩展模式。用于向用户展示更多信息。扩展模式的 UI设计尽量保持和紧凑模式一致,用户从紧凑模式切换到扩展模式会有一个平滑的体验。
当我们向 App Store 提交了适配灵动岛的 App 版本时,以上 3 种模式都需要适配。
二、UI适配
1.尺寸
目前只有 iPhone 14 Pro 及 iPhone 14 Pro MAX 具有灵动岛功能。在两种机型上,灵动岛的圆角半径都为 44Points,这个数值和前置深感摄像头的半径是一样的。按照前述的 3 种模式,灵动岛的具体参数如下表格所示(表格涉及的数值表示Points)。
机型 | 屏幕尺寸 | 紧凑模式(头部) | 紧凑模式(尾部) | 最小化模式 | 展开模式 |
---|---|---|---|---|---|
iPhone 14 Pro | 393*852 | 52.33*36.67 | 52.33*36.67 | 36.67*36.67 | 371*(84-160) |
iPhone 14 Pro Max | 430*932 | 62.33*36.67 | 62.33*36.67 | 36.67*36.67 | 408*(84-160) |
2.颜色
开发者无法更改灵动岛的背景颜色,只能更改文字颜色、素材颜色、灵动岛边框颜色等。UI 适配需要考虑系统的深色模式,必要情况可以使用两套 UI。
三、开发适配
1.开发框架简介
苹果在 iOS 16.1 正式对外开放了灵动岛适配框架 ActivityKit
,第三方 App 可以使用这些 ActivityKit
完成灵动岛适配工作。注意 ActivityKit
的 API 目前仅适用于 iPhone。灵动岛使用 WidgetKit
和 SwiftUI
完成 UI 开发工作,ActivityKit
在其中扮演创建 Activity
,请求数据,更新数据,结束 Activity
的角色。
2.权限管理
灵动岛作为实时活动的一部分,需要实时活动权限才能正常展示。和通知权限,相机权限等类似,实时活动权限需要 App主动向用户申请,用户也可以在“设置”中主动关闭实时活动权限。
3.注意点
- 灵动岛的实时信息要有明确的开始和结束时间点
- 当一个实时信息持续超过 8 小时,系统会从灵动岛移除这个 App 的信息
- 当一个实时活动结束时,灵动岛上的展示信息也会立即被系统移除
- 避免在灵动岛上显示广告,毕竟引起用户反感可以被直接关闭
- App 要能够响应灵动岛的点击信息,跳转到 App 中的正确子页面,而不是停留在 App 的首页。