为自定义意图多次调用小部件 getTimeline 方法

Dav*_*ven 6 widget ios swift widgetkit ios14

在具有单个自定义意图的 iOS 14 小部件中,当用户选择一个意图,然后更改为另一个getTimeline意图时,每次刷新时都会为每个意图多次调用我的方法 - 包括先前选择的意图。

我希望getTimeline只能使用当前选择的意图来调用。有没有办法检查意图是否是当前选择的意图?我在该getTimeline方法中发出了一个网络请求,并且当小部件仅显示一个意图时,我不想发出多个请求。

例如,我下载了Emoji Ranger示例代码,并在 getTimeline 方法中添加了打印语句。然后我:

  1. 运行应用程序并打开它一次。
  2. 将小部件添加到主屏幕。
  3. 在模拟器上运行小部件扩展目标。
  4. 选择角色蛋头。
  5. 选择角色蛋糕。

这是下一次小部件刷新时打印的内容(通常约 15 分钟):

- Timeline: nil
- Timeline: Optional("Egghead")
- Timeline: Optional("Cake")
Run Code Online (Sandbox Code Playgroud)

非常感谢任何帮助,谢谢!