大多数浏览器和
Developer App 均支持流媒体播放。
-
watchOS 11 的新功能
探索 Apple Watch 上的全新可能性,包括让你的 watchOS App 支持双指互点两下手势,提升你的智能叠放小组件的相关性和互动性,以及在智能叠放中显示 iOS 实时活动。
章节
- 0:00 - Intro
- 1:00 - Live Activities
- 2:29 - Widgets
- 10:33 - Double tap
- 12:29 - Health and fitness
资源
- Enabling the double-tap gesture on Apple Watch
- Forum: UI Frameworks
- Human Interface Guidelines: watchOS
- Human Interface Guidelines: Widgets
- WidgetKit
相关视频
WWDC24
-
下载
大家好 我叫 Erena Inoue 我是 watchOS Smart Stack 团队的工程师 watchOS 11 满载新功能 让 Apple Watch 更加 个性化、智能化和便捷化 在本讲座中 我将介绍 如何在你的 App 中利用这些功能 我们将介绍 iOS 实时活动 在 Apple Watch 上的显示方式 以及如何针对 watchOS 自定实时活动的使用体验
接下来 我们将讨论 互动性和相关性如何结合在一起 让小组件更具可操作性 让智能叠放更智能
然后 我们将了解双指互点两下手势 如何用于导航以及 如何在 App 中执行操作
之后 我们将了解 HealthKit 和 WorkoutKit 的一些增强功能
要讲的内容很多 让我们从实时活动开始吧 借助实时活动功能 用户可直接从 iPhone 锁定屏幕追踪活动 或任务的进展 相关信息一目了然
在 watchOS 11 中 来自 iOS App 的实时活动将 在 Apple Watch 的智能叠放中显示 即使你还没有 watchOS App也如此
完全无需修改代码 灵动岛中的前边缘视图和后边缘视图 便会自动显示在智能叠放中
你可以为 Apple Watch 上的 智能叠放提供自定内容 方法是指定你的实时活动可支持 小型补充活动系列 将 .supplementalActivityFamilies 修饰符添加到 ActivityConfiguration 时 系统会优先选择你的自定内容视图 而不是灵动岛视图 然后 你就可以使用 Environment 来进一步自定 watchOS 版实时活动视图的布局 在 iOS 和 iPadOS 上 .small 系列用于智能叠放 .medium 系列用于锁定屏幕
实时活动是一种令人兴奋的新方式 可为智能叠放带来丰富 且一目了然的信息
有关如何在 Apple Watch 上 提供出色的实时活动体验的更多信息 请务必观看这些讲座
我们继续探讨智能叠放中 更丰富的体验 小组件中有许多新功能! 让我们从相关小组件开始说起
watchOS 10 推出了智能叠放 这是一些叠放在一起的可自定小组件 只需转动数码表冠 即可从任何表盘进行访问
在 watchOS 11 中 小组件可在适当的时候 自动显示在智能叠放中 只要你向系统 提供一些上下文线索即可 使用 App Intent RelevantContext API 让系统知道何时显示你的小组件 可能是最恰当的 你可以提供相关上下文 如日期、 推断的位置或精确位置、 睡眠(包括就寝时间和起床时间)、 健身提示(包括正在进行的体能训练 和不完整的健身记录圆环) 等等 你可参阅文档了解更多信息
让我们以“提醒事项”App 为例 看看如何在小组件中 使用 RelevantContext
首先 在小组件的 TimelineProvider 中实现新的 relevances() 方法
接下来 定义 RelevantContext 我们列表中的提醒事项可以有 到期日或相关的日期间隔 因此 我们将使用日期相关上下文
将刚刚创建的上下文包装在一个新的 WidgetRelevanceEntry 类型中 并返回 WidgetRelevances 这会包装你刚刚创建的 WidgetRelevanceEntry
你还可以对其他相关 上下文进行类似操作 例如 如果你有一个睡眠数据小组件 那么它可能在用户醒来后与用户相关 你可以使用 .sleep 相关上下文 让系统在用户醒来时 推荐你的小组件 或者 假设你有一个 体能训练追踪 App 如果用户当天还没有进行体能训练 你可以使用 .fitness 相关上下文 和 .activityRingsIncomplete 条件 让系统推荐你的小组件
如果你的小组件有 AppIntentConfiguration 你可以根据意图提供相关性 让我们来看一个咖啡店小组件的示例 每个意图代表用户收藏的商店位置 当用户在相应商店附近时 你可以为每个位置 提供与位置相关的上下文 WidgetRelevanceEntry 的构造器 将为你的 App Intent 接收一个额外的配置参数 相关性方法的返回类型 将以你的 WidgetConfigurationIntent 类型作为通用参数
当用户更换了自己最喜欢的咖啡店时 使用 invalidateRelevances 方法 提供更新后的相关位置
总之 请谨慎选择指定的 相关上下文 因为重要的是在小组件 有用且可操作时 推荐这些小组件 系统使用 RelevantContext 来推荐你的小组件 并确定这个小组件在其他 小组件中的优先级 系统会同时考虑 来自许多小组件的建议 因此无法保证你的小组件总是会出现 接下来要介绍的是交互式小组件
在 iOS 17 和 macOS 14 中 我们推出了交互式小组件 让用户可直接在小组件上 执行操作而无需打开 App 现在 你也可以将 交互式小组件引入 watchOS 中 就像在 iOS 和 macOS 中一样 利用按钮和开关可让你的 watchOS 小组件具有交互性 例如 watchOS 11 中的 交互式家庭小组件可让用户直接将 大门上锁或开锁
借助互动操作 无需启动 App 即可快速操作 所有 watchOS 小组件 系列都支持互动操作 虽然支持多个互动 但由于形状和大小方面的原因 某些 小组件系列可能不适合使用多个互动 我们以家庭小组件为例 看看如何为你的小组件 引入互动操作 首先 在小组件视图中 创建一个 SwiftUI 按钮
然后 在小组件的 Intent 中 实现 perform() 方法 以指定 App Intent 操作 在本例中 轻点按钮会将门上锁
有关如何使用交互式 小组件的更多详情 请务必观看有关互动操作的讲座 “如何让小组件更加生动” 其中介绍的准则同样 也适用于 watchOS
有时 要从小组件执行操作时 添加一个额外的确认步骤非常重要 这是为了避免不必要的意外情况 例如 用户工作时 轻点小组件来打开家里的门锁 可能是无意中进行的操作
你可以使用 requestConfirmation() API 在执行意图之前显示额外的提示 以确认用户是否有意执行这个操作 将条件参数 设为 .lowConfidenceSource 从而让系统决定 何时可能发生意外轻点 并在这些情况下进行提示
为尽可能无缝便捷地创建 交互式 watchOS 小组件 我们推出了一个名为 AccessoryWidgetGroup 的视图模板 API 你可以使用这个模板 在 accessoryRectangular 小组件中 创建视图 其中最多可包含三项 不同的内容以便于浏览
在 watchOS 11 中 许多新的小组件都采用这种布局
“信息”小组件显示 置顶的前三位联系人
AccessoryWidgetGroup 有 2 个主要组件 即 Label 和 Content 默认情况下 Label 的显示名称 为 App 的小组件扩展包名称 不过 我们鼓励大家提供 自定 Label 或 Text 视图 Content 最多可以有 3 个视图 如果提供 3 个以上视图 则只显示提供的前 3 个视图 内容中的每个视图都可以是交互式的 也可以使用 Link 深层链接 到 App 的不同部分 字体大小、内容视图大小 和内容外边距都是预先配置的 让你只需关注小组件内容即可
如果置顶的联系人少于 3 个 系统会自动插入额外的空视图 以确保小组件中显示三个视图 轻点时 空视图会直接启动 App 系统会提供空视图的颜色 为保证所有小组件外观一致 这个颜色不可配置
你可以使用 .accessoryWidgetGroupStyle 视图修饰符 来指定内容视图的遮罩形状 .circular 或 .roundedSquare 如果未指定 则默认为 .circular
你还可以在 AccessoryWidgetGroup 布局中自定颜色
背景可以使用 .containerBackground() 视图修饰符进行着色 标签可以使用 .foregroundStyle() 视图修饰符进行着色
让我们总结一下小组件中的新功能 相关小组件可让系统 向用户适时推荐你的小组件 我们还介绍了交互式小组件 你可以在一个小组件上 添加多个轻点目标 且无需启动 App 即可执行操作
AccessoryWidgetGroup 非常适合 在单个小组件中显示 多种内容或 App Intent 所有这些功能相辅相成 让智能叠放 更具可操作性和智能性 现在 让我们来谈谈 双指互点两下手势 Apple Watch Series 9 和 Ultra 2 引入一种全新的方式来执行常用操作 例如使用双指互点两下手势 接听电话、暂停音乐 以及滚动浏览智能叠放等等 在 watchOS 11 中 双指互点两下手势的适用范围 已扩展到 App 中的更多位置
现在 双指互点两下手势可以
滚动浏览 List、ScrollView
和垂直样式的 TabView 你的 App 将自动获得这种行为
除了自动滚动行为外 你还可以确定要通过双指互点两下 手势执行的主要操作 例如 激活 App 中或智能叠放中
小组件或实时活动的按钮或开关
将 .handGestureShortcut 修饰符应用于按钮或开关 以将它标识为 .primaryAction 当用户执行双指互点两下手势时 系统将自动高亮显示 按钮或开关的轮廓 通过视觉提示表明 这就是将要调用的操作 必要时 可使用“裁剪形状” 视图修饰符 来自定高亮显示的形状
一次只能有一个元素是主要操作 因此 请仔细考虑 App 的 界面和用例 只有当控件在屏幕上时 双指互点两下手势才会触发主要操作 如果控件不在屏幕上 系统将向控件滚动 如果你的 App 已经 使用 List 或 ScrollView 并因此继承了双指互点两下手势时的 自动滚动行为 请不要同时在这些视图中也用这一手势来执行操作 只有在 App 中以一致且可预测的方式使用时 双指互点两下手势才能发挥最大功效
最后 让我们来看看 WorkoutKit 和 HealthKit 中 的一些增强功能
WorkoutKit 增加了一种 新的活动类型 除骑行和跑步外 自定体能训练 API 中还加入了泳池游泳 自定泳池游泳也有新的目标类型 distanceWithTime 允许体能训练 阶段同时具有距离目标和时间目标 对于所有自定体能训练类型 你现在 可以使用新的 displayName 属性 来自定训练、恢复、热身以及 整理放松阶段的名称 请务必观看“使用 WorkoutKit 打造 自定游泳体能训练体验”讲座 了解更多详情
在 HealthKit 中 你现在可以使用 新的心理状态 API 来读取和写入心情或情绪数据 请务必观看“探索 HealthKit 中的 身心健康 API”讲座 了解更多详情
我们非常高兴看到 watchOS 11 为你的 App 带来这些新机会 你的实时活动现在将 出现在 Apple Watch 上 你可以自定体验 相关性、互动操作和更多布局选项 可以让你的小组件在智能叠放中 更易于操作和浏览 双指互点两下手势提供了在 App 或 小组件中进行导航和操作的新方法 HealthKit 和 WorkoutKit 的 增强功能 为健康和健身领域的 App 带来了新的可能性 有关 SwiftUI 新功能的更多信息 请观看“SwiftUI 的新功能”讲座
我非常期待看到这些 新的 API 能够 为你的 App 和小组件 带来哪些创新 感谢观看
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。