使用Main App时如何刷新Widget?
How to refresh Widget when Main App is used?
我正在使用 UIKit
应用程序并使用 SwiftUI
和 Widgetkit
添加了一个小部件。
现在我想在用户在主应用程序中执行某项操作时更新小部件。
通常我应该使用 WidgetCenter.shared.reloadAllTimelines()
对吧?
但这只适用于 SwiftUI
.
我可以说我的小部件应该每秒重新加载一次。但是我的小部件执行 json 请求。这也会每秒执行一次 json 请求,这是我不想要的。
供您参考。主应用与小部件共享 UserDefaults
。根据 UserDefaults
它读取它并改变它的外观。
现在小部件在首次添加时会加载正确的 UserDefault。但是正如我所说,更改添加的小部件不起作用。
我想删除和添加小部件不是一个用户友好的选项。
WidgetCenter.shared.reloadAllTimelines()
独立于您使用的 UI 框架。您可以在 SwiftUI 或 UIKit.
中使用它
如果您担心发出太多请求,您可以仅在您的应用进入后台后调用该方法。
我正在使用 UIKit
应用程序并使用 SwiftUI
和 Widgetkit
添加了一个小部件。
现在我想在用户在主应用程序中执行某项操作时更新小部件。
通常我应该使用 WidgetCenter.shared.reloadAllTimelines()
对吧?
但这只适用于 SwiftUI
.
我可以说我的小部件应该每秒重新加载一次。但是我的小部件执行 json 请求。这也会每秒执行一次 json 请求,这是我不想要的。
供您参考。主应用与小部件共享 UserDefaults
。根据 UserDefaults
它读取它并改变它的外观。
现在小部件在首次添加时会加载正确的 UserDefault。但是正如我所说,更改添加的小部件不起作用。
我想删除和添加小部件不是一个用户友好的选项。
WidgetCenter.shared.reloadAllTimelines()
独立于您使用的 UI 框架。您可以在 SwiftUI 或 UIKit.
如果您担心发出太多请求,您可以仅在您的应用进入后台后调用该方法。