我正在使用UIKit
应用程序,并添加了带有SwiftUI
和Widgetkit
的小部件。
现在,当用户在主应用程序中执行某项操作时,我想更新小部件。
通常我应该使用WidgetCenter.shared.reloadAllTimelines()
对吗?
但这仅适用于SwiftUI
。
我可以说我的小部件应该每秒重新加载一次。但是我的小部件会执行json请求。那也将每秒执行一次我不想要的json请求。
供您参考。主应用程序与小部件共享UserDefaults
。根据{{1}},它会读取并更改其外观。
现在,在第一次添加小部件时,它会加载正确的UserDefault。但是正如我说的那样,更改添加的Widget无效。
我猜想删除和添加小部件不是用户友好的选项。
答案 0 :(得分:2)
WidgetCenter.shared.reloadAllTimelines()
独立于您使用的UI框架。您可以从SwiftUI或UIKit使用它。
如果您担心发出太多请求,则只能在应用程序进入后台后才能调用该方法。