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



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

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

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

方法WidgetCenter.shared.getCurrentConfigurations返回用户配置的窗口小部件的数量:

WidgetCenter.shared.getCurrentConfigurations { widgets 
if let widgets = widgets, widgets.count > 0 {
// User did configure at least one widgets
}
}

这也是根据文件:

检索有关用户配置的小部件的信息。

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

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

对于2。我认为这是(并且将是(不透明的,所以您只需告诉WidgetCenter重新加载特定或所有配置,当主屏幕上当前没有放置小部件时,就不会发生任何事情。

相关内容

  • 没有找到相关文章

最新更新