跳转到内容

WidgetKit

通过创建小组件、手表复杂功能、实时活动和控件,扩展您的应用影响力。

TIP

iOS 14.0+ iPadOS 14.0+ Mac Catalyst 14.0+ macOS 11.0+ visionOS 26.0+ Beta watchOS 9.0+

概述

使用 WidgetKit,您可以让应用的内容在应用之外的场景中可用,并通过构建一个可快速浏览、实时更新的体验生态系统来扩展其影响力。

A conceptual image that shows a small widget on iPhone, a rectangular widget on Apple Watch, and a small widget on the Mac desktop.

WidgetKit 支持的生态系统包括:

  • 小组件 小组件可以将应用中少量及时且与个人相关的信息提升出来,展示在用户一眼就能看到的位置,并在无需启动应用的情况下提供特定的应用功能。在 iPhone 和 iPad 上,用户可以将小组件放在“今日视图”、主屏幕和锁定屏幕上。在 Mac 上,用户可以将原生 Mac 应用的小组件放在桌面和通知中心。此外,用户还可以将 iPhone 小组件放在 Mac 的桌面、通知中心或 CarPlay 等位置。在 Apple Watch 上,小组件会出现在智能叠放中;在 Apple Vision Pro 上,小组件会变成三维对象,用户可以将其固定在水平或垂直表面上。
  • 智能叠放 在 iPhone 和 iPad 上,用户可以在主屏幕上叠放小组件,并创建智能叠放,利用智能旋转功能显示最符合当前情境的小组件。在 Apple Watch 上,系统会智能地显示与用户个人情境最相关的小组件。此外,用户还可以将某个小组件设置为始终显示在智能叠放中,或将其固定在特定位置。 表盘复杂功能 用户可以将表盘复杂功能放置在 Apple Watch 表盘上,以便在抬腕时查看及时且相关的信息。此外,Apple Watch 上的智能叠放最多可容纳三个复杂功能。
  • 实况活动 实况活动在锁屏或灵动岛上显示来自你的应用的最新内容,如事件和任务信息。实况活动使用 ActivityKit 进行更新,并可选择使用 Apple 推送通知服务(APNs)发送 ActivityKit 推送通知。欲了解更多信息,请参阅 ActivityKit。
  • 控件 控件作为按钮或切换开关,允许用户在控制中心、锁屏以及操作按钮上,通过 App Intents 框架执行你描述的操作。按钮控件可以发起你的应用中的某个操作,或打开应用到特定视图;切换控件可以控制灯光的开关,或车库门的开合。控件会显示在控制中心,或作为菜单栏项目以及 Apple Watch 的控制中心中。

迭代开发可一目了然的功能

WidgetKit 支持在 iPad、iPhone、Mac、Apple Watch 和 Apple Vision Pro 上实现功能,但始终以最适合用户设备和个人需求的方式呈现。例如,WidgetKit 在所有平台上都支持不同尺寸的小组件。它还支持实况活动和控件,这些功能在 Apple Vision Pro 上并不可用。

尽管 WidgetKit 支持的每项功能并非在每个平台或设备上都可用,但小组件、实况活动、控件和表盘复杂功能在技术和设计上有许多相似之处。这使得可以同时开发这些功能,并在不同场景下扩展其使用。

采用迭代的方法,从支持某一项功能或特定尺寸的小组件开始——例如,按照创建小组件扩展中所述,从一个小尺寸的小组件入手,但从一开始就规划和设计跨平台的其他尺寸和功能。然后,让用户能够在尽可能多的场景中查看你的内容。更多信息请参阅制定 WidgetKit 策略 。

了解交互性和个性化

WidgetKit 生态系统让用户能够在新的环境中查看你的应用内容,并在需要时以特定方式与你的应用进行交互:

  • 户点击小组件、手表复杂功能或实时活动,即可启动相应的应用或带有匹配信息或功能的应用场景。例如,点击 Emoji Ranger 小组件或手表复杂功能会启动应用中与所显示英雄相匹配的场景。欲了解更多信息,请参阅从你的小组件或实时活动链接到特定应用场景 。

  • 户可以在小组件、控件和实时活动中使用按钮和切换开关,无需启动应用即可与其进行交互。例如,Emoji Rangers: 支持实时活动、交互性和动画示例代码项目中的大型小组件包含一个按钮,用户点击后可以临时提升其英雄的治疗能力。

除了能够一目了然地提供相关信息和特定的交互性外,人们还通过小组件、手表复杂功能、实时活动和控件来个性化他们的设备:

  • 人们会根据自己的需求配置小组件和手表复杂功能,以显示特定的详细信息。例如,Emoji Rangers: Supporting Live Activities, interactivity, and animations 示例代码项目中的一个小组件允许用户配置出现在小组件上的英雄角色。
  • 人们会以最适合自己的方式排列小组件和手表复杂功能。当他们在 iPhone 或 iPad 上堆叠小组件并启用智能旋转时,WidgetKit 会自动将最相关的小组件旋转到顶部,确保用户在合适的时间看到最重要的信息。在 Apple Watch 上,智能叠放会根据情境相关性显示小组件,用户还可以将自己喜欢的小组件固定在智能叠放中的某个位置。

通过时间线和推送通知更新内容

小组件和手表复杂功能使用一种特殊机制来更新其内容:你需要创建一个数据更新时间线并交给 WidgetKit。随后,WidgetKit 会确保小组件或复杂功能以节能的方式更新其内容。有关时间线的更多信息,请参阅保持小组件内容最新 。此外,小组件还可以通过 Apple 推送通知服务(APNs)和远程推送通知接收更新。

实况活动不使用时间线来更新其内容。相反,它们使用 ActivityKit 以及你通过 APNs 发送的 ActivityKit 推送通知。欲了解更多信息,请参阅 ActivityKit。

控件不使用时间线来更新其内容。相反,当用户使用控件、应用重新加载控件,或系统收到来自 APNs 的远程推送通知时,控件会更新其内容。

创建专注且一目了然的设计

小组件、手表复杂功能、实时活动和控件体积小巧,需要专注且一目了然的设计。有关设计指导,请参阅人机界面指南 > 小组件 、 人机界面指南 > 复杂功能 、 人机界面指南 > 实时活动和人机界面指南 > 控件 。

贡献者

The avatar of contributor named as wangqiyangX wangqiyangX

页面历史

基于 MIT 许可发布