【问题标题】:Updating iOS Widget every time it appears每次出现时更新 iOS Widget
【发布时间】:2021-06-24 13:36:29
【问题描述】:

我正在 SwiftUI 中构建一个小部件并了解时间线,但有没有办法在每次小部件出现在用户设备上时更新时间线?我想调用一个 API,以便数据是最新的,而不是每隔几分钟调用一次。这可能吗?

【问题讨论】:

  • 我怀疑你将获得的最接近的时间线是提供一个包含许多整体的时间线,尽可能靠近。
  • 这就是我现在拥有的,但是它使用了太多的 API 调用。
  • 我不知道您的 API 如何或返回什么,但我不建议每次都调用 API。我建议调用 API 的次数有限,并为 iOS 小部件系统提供一个包含许多条目的时间线。
  • 这很理想,但它适用于现场体育比分,因此需要每几分钟更新一次

标签: ios swift swiftui widget


【解决方案1】:

您不能创建一个会不断更新的小部件,因为操作系统会限制它。

对于您描述的现场体育比分小部件,您可以做的最好的事情是为您的@987654323 的policy 属性指定一个给定间隔(例如,5 分钟,这可能仍然过于激进)的未来日期@条目使用.after(Date(timeIntervalSinceNow: 60 * 5)

您还希望您的小部件更智能,并且只在已知的比赛/比赛时间内指定较短的间隔。

我强烈建议仔细阅读 Apple 的 Time Provider DocumentationDetermining a Refresh PolicyRefreshing Widgets Efficiently 部分。如果您滥用刷新间隔,操作系统将限制您的应用刷新的速度。

【讨论】:

    猜你喜欢
    • 2021-01-21
    • 1970-01-01
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    相关资源
    最近更新 更多