使用主应用时如何刷新Widget?

sub*_*ner 9 swift widgetkit swiftui

我正在使用一个UIKit应用程序并添加了一个带有SwiftUI和 的小部件Widgetkit。现在,当用户在主应用程序中执行某项操作时,我想更新小部件。

通常我应该使用 WidgetCenter.shared.reloadAllTimelines()对吗?但这仅适用于SwiftUI.

我可以说我的小部件应该每秒重新加载。但我的小部件执行 json 请求。这也会每秒执行我不想要的 json 请求。

为您提供信息。主应用UserDefaults程序与小部件共享。根据它的不同UserDefaults,它会读取它并改变它的外观。

现在,小部件在首次添加时会加载正确的 UserDefault。但正如我所说,更改添加的小部件不起作用。

我想删除和添加小部件不是一个用户友好的选项。

Emi*_*aez 18

WidgetCenter.shared.reloadAllTimelines()独立于您使用的 UI 框架。您可以从 SwiftUI 或 UIKit 使用它。

如果您担心发出太多请求,则可以仅在应用程序进入后台后调用该方法。

  • 谢谢。我做到了。我只需要导入 WidgetKit 并可以使用上面的代码。我还需要检查是否安装了 iOS 14。伟大的! (5认同)