如果我的小部件正在被使用,如何查询 WidgetKit?

meh*_*mak 5 ios widgetkit

我想检查用户是否将我的小部件添加到主屏幕,是否有 API?我找不到一个。WidgetCenter.getCurrentConfigurations返回应用程序提供的所有可用小部件,而不是使用过的小部件。

我寻找这样一个 API 的原因是:

  1. 我想报告小部件的使用情况。
  2. 我想决定是否应该通过WidgetCenter应用程序中发生状态更改时触发时间线重新加载。

fru*_*der 0

不幸的是,我认为这样的 API 还不存在。

对于 1. 我会编写一些内容来标识共享用户默认容器中的小部件。挂钩将是getSnapshot(for:,in:,completion:)or getTimeline(for:,in:,completion:)with context.isPreview == false。现在困难的部分是您没有获得该小部件的任何 id,因此您无法区分具有相同配置的两个小部件(据我所知)。

对于2。我认为这是(并且将是)不透明的,因此您只需告诉WidgetCenter重新加载特定或所有配置,并且当当前没有小部件放置在主屏幕上时,什么也不会发生。