我想检查用户是否将我的小部件添加到主屏幕,是否有API?我找不到。WidgetCenter.getCurrentConfigurations
返回应用程序提供的所有可用小部件,而不是已使用的小部件。
我寻找这样一个API的原因是:
- 我想报告小部件的使用情况
- 当应用程序中发生状态更改时,我想决定是否应该通过
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
重新加载特定或所有配置,当主屏幕上当前没有放置小部件时,就不会发生任何事情。