框架

WidgetKit

通过创建小组件、Watch 复杂功能、实时活动和控制,使 App 的内容和功能扩展到设备上的更多位置。

概览

利用 WidgetKit,你可以构建一个生态系统来支持一目了然且及时更新的体验,从而能够在 App 之外的场景中提供 App 内容,并使 App 的内容和功能扩展到设备上的更多位置。

一张概念图,其中展示了 iPhone 上的小组件、Apple Watch 上的矩形小组件以及 Mac 桌面上的小组件。

WidgetKit 所支持的生态系统包括以下组成部分:

小组件

小组件从 App 提取及时且与个人相关的少量信息,将其显示在用户一眼就能看到的地方,并在不启动 App 的情况下提供特定的 App 功能。在 iPhone 和 iPad 上,用户可以将小组件放在今天视图、主屏幕和锁定屏幕。在 Mac 上,用户可以将原生 Mac App 小组件放在桌面和通知中心。从 iOS 17 和 macOS 14 开始,用户还可以将 iPhone 小组件放在 Mac 桌面和通知中心。在 Apple Watch 上,小组件显示在智能叠放中。

智能叠放

在 iPhone 上,用户可以叠放小组件并创建智能叠放。在智能叠放中,WidgetKit 利用设备端智能技术以及 App Intents 框架提供的功能来实现智能轮换。智能轮换会根据用户的当前情况,将相应的小组件显示在叠放的最上层。在 Apple Watch 上,用户将小组件放在智能叠放中,并可将小组件固定到固定位置,或让系统根据用户情况进行排序。

Watch 复杂功能

用户可以将 Watch 复杂功能放在 Apple Watch 表盘中,只需抬起手腕便可查看及时、相关的信息。此外,Apple Watch 上的智能叠放最多可容纳 3 个复杂功能。

实时活动

实时活动可在锁定屏幕或灵动岛中显示 App 的最新内容,例如活动和任务信息。实时活动使用 ActivityKit 获取更新,还可以选择使用 Apple 推送通知服务 (APNs) 来发送 ActivityKit 推送通知。如需了解更多信息,请参阅 ActivityKit

控制

控制可让用户通过控制中心、锁定屏幕和操作按钮完成 App 中的操作。你可以创建按钮或开关形式的控制。例如,按钮可以执行 App 中的操作或打开 App 中的特定视图,开关可以开关灯或者开关车库门。

以迭代方式开发一目了然的功能

WidgetKit 可在 iPad、iPhone、Mac 和 Apple Watch 中启用各种功能,但只会以最符合用户设备和个人需求的方式启用。例如,WidgetKit 在所有平台上支持各种尺寸的小组件。它还支持仅在 iPhone 和 iPad 上可用的实时活动、控制和功能。

尽管 WidgetKit 支持的每项功能并非在每个平台或设备上都可用,但小组件、实时活动、控制和 Watch 复杂功能在技术和设计有许多相似之处。因此开发者可以轻松地同时开发各种功能并扩展使用场景。

使用迭代方法并从支持一项功能或部分尺寸的小组件入手。例如,首先创建一个小尺寸的小组件 (参照创建小组件扩展),但从一开始就计划和设计适合多种平台的其他尺寸和功能。然后使用户能够在尽可能多的场景中查看你的内容。如需了解更多信息,请参阅制定 WidgetKit 策略

了解交互和个性化

WidgetKit 生态系统使用户能够在新场景中查看 App 内容,并可随时随地根据需要与 App 进行特定的交互:

  • 用户轻点小组件、Watch 复杂功能或实时活动即可启动相应的 App 或带有相匹配信息或功能的 App 场景。例如,轻点 Emoji Ranger 小组件或 Watch 复杂功能会启动与显示的角色匹配的 App 场景。

  • 用户可以使用小组件、控制和实时活动中的按钮和开关与 App 交互,而无需启动 App。例如,Emoji Rangers:支持实时活动、交互和动画 示例代码项目的大尺寸小组件包含一个按钮,用户轻点该按钮可临时增强角色的疗愈能力。

除了提供一目了然的相关信息和特定交互操作,用户还可使用小组件、Watch 复杂功能、实时活动和控制来对设备进行个性化设置:

  • 用户可以配置小组件和 Watch 复杂功能,以展示自己需要的详细信息。例如,Emoji Rangers:支持实时活动、交互操作和动画 示例代码项目的小组件允许用户配置小组件中显示的角色。

  • 用户可以按照最适合自己的方式排列小组件和 Watch 复杂功能。当用户在 iPhone 或 iPad 中叠放小组件并启用“智能轮换”时,WidgetKit 会自动将最相关的小组件轮换显示在最上层,确保用户在最恰当的时间看到最重要的详情。在 Apple Watch 上,智能叠放会显示默认小组件,用户也可以将小组件放在智能叠放中的固定位置。

使用时间线更新内容

小组件和 Watch 复杂功能使用一种特殊的机制来更新其内容:你创建一个数据更新时间线并将其传递给 WidgetKit。然后 WidgetKit 会以节能的方式确保小组件或复杂功能更新其内容。有关时间线的更多信息,请参阅让小组件保持最新状态

实时活动不使用时间线来更新内容,而是使用 ActivityKit 和 Apple 推送通知服务 (APNs) 来发送 ActivityKit 推送通知。如需了解更多信息,请参阅 ActivityKit

控制不使用时间线来更新内容。当用户使用控制、App 重新加载控制,或系统从 Apple 推送通知服务 (APNs) 收到远程推送通知时,控制会更新其内容。

创建简洁明了的设计

小组件、Watch 复杂功能、实时活动和控制的尺寸都很小,需要设计得清晰明确、一目了然。有关设计方面的指导,请参阅《人机界面指南》> 小组件《人机界面指南》> 复杂功能《人机界面指南》> 实时活动以及《人机界面指南》> 控制

相关主题

当前页面为 WidgetKit