【问题标题】:How to refresh Widget when Main App is used?使用主应用程序时如何刷新小部件?
【发布时间】:2021-01-15 22:29:52
【问题描述】:

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

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

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

供您参考。主应用程序与小部件共享UserDefaults。根据UserDefaults,它会读取它并改变它的外观。

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

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

【问题讨论】:

    标签: swift swiftui widgetkit


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢。我做到了。我只需要导入 WidgetKit 并可以使用上面的代码。我还需要检查是否安装了 iOS 14。太好了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多