iOS 14 的 iOS 应用程序和小部件之间的通信

jac*_*n89 6 widgetkit swiftui

我目前正在为我的应用程序创建第一个小部件。数据是通过 API 调用获取的。我想知道是否可以从应用程序发出此请求,然后将该请求的结果发送到小部件?(有点像 WatchConnectivity 对手表的作用)

感谢您的帮助 :-)

Tay*_*son 2

是的,可以使用其中一个WidgetCenterAPI 来重新加载您的时间线。

...
// make API call
// store data in shared storage that the Widget uses


WidgetCenter.shared.reloadAllTimelines()
// OR
WidgetCenter.shared.reloadTimelines(ofKind: "WidgetKind")

Run Code Online (Sandbox Code Playgroud)

请注意,它很可能是首选使用,reloadTimelines(ofKind: "WidgetKind")因为它只会重新加载特定小部件的时间线。“WidgetKind”可以在您的 WidgetConfiguration 定义中找到

  • 我不确定这个接受的答案是否真的回答了这个问题。或者至少我从这个问题中了解到的是,该人通过 API 调用请求数据,然后他希望将该数据从主应用程序发送到 widgetExtension,以便他可以将其显示在他的小部件上。 (10认同)
  • 只要开发人员使用应用程序组将来自 API 调用的数据存储在共享存储中,就可以处理这种情况。小部件不会持续运行进程,因此我不相信有一种方法可以在不使用共享存储的情况下将数据从应用程序“发送”到小部件 (2认同)