Widget 学习 WidgetCenter

2020-11-09  本文已影响0人  弑神指

WidgetCenter (小工具中心)

包含用户配置的小部件列表的对象,用于重新加载小部件时间线。

宣言

 class WidgetCenter

总览

WidgetCenter提供有关用户配置的小部件(例如其家族)的信息。对于使用IntentConfiguration的窗口小部件,您可以检索用户编辑的值。

获取已配置的小部件信息

要获取用户配置的小部件列表,请使用getCurrentConfigurations(_:)。此属性提供了包含以下信息的WidgetInfo对象数组:

struct WidgetInfo {
    public let configuration:INIntent?
    public let family:InternalWidgetFamily
    public let kind:String

kind字符串与您在创建窗口StaticConfiguration小部件的或IntentConfiguration时使用的参数匹配。
该属性与窗口小部件配置的属性中指定的选项之一匹配。
如果您的窗口小部件基于IntentConfiguration,则该属性将提供包含每个单独窗口小部件的用户定制值的自定义意图。

请求重新加载小部件的时间轴

应用状态的更改可能会影响小部件的时间轴。发生这种情况时,您可以告诉WidgetKit重新加载特定类型的小部件或所有小部件的时间线。例如,您的应用可能会根据用户配置的小部件注册推送通知。当您的应用收到推送通知,该通知会更改一个或多个窗口小部件的状态时,请求重新加载其时间线会更新其显示。

如果您只需要重新加载某种类型的小部件,则可以仅请求重新加载某种类型的小部件。例如,响应关于游戏状态更改的推送通知,您可以仅针对游戏状态小部件请求重新加载:

WidgetCenter.shared.reloadTimeLines(ofKind:"com.mygame.gamestatus")

要请求重新加载全部小部件:

WidgetCenter.shared.reloadAllTimeLines()

话题

获取小部件信息

static let shared: WidgetCenter

共享的小部件中心。

func getCurrentConfigurations((Result<[WidgetInfo], Error>) -> Void)

检索有关用户配置的小部件的信息。

struct UsernfoKey

定义用于访问userInfo词典中的信息的键的对象。

重新加载小部件时间表

func reloadTimelines(ofKind: String)

重新加载特定种类的所有小部件的时间线。

func reloadAllTimelines()

重新加载属于该包含应用程序的所有已配置小部件的时间线。

另外阅读

时间表管理

使小部件保持最新

计划小部件的时间轴,以使用动态视图及时显示相关信息,并在发生变化时更新时间轴。

protocol TimelineProvider

建议WidgetKit何时更新窗口小部件显示的类型。

protocol IntentTimelineProvider

建议WidgetKit何时更新用户可配置的窗口小部件显示的类型。

struct TimelineProviderContext

一个对象,其中包含有关如何渲染小部件的详细信息,包括其大小以及它是否出现在小部件库中。

protocol TimelineEntry

一种类型,指定显示小部件的日期,并可选地指示小部件内容的当前相关性。

struct Timeline

一个对象,指定WidgetKit更新窗口小部件视图的日期。

上一篇下一篇

猜你喜欢

热点阅读