IntentHandler 不更新



我有带动态选项的可配置小部件。用户可以选择不同的选项;小工具1";或";小工具2";(图片(。数据由UserDefault提供,可以在主应用程序中进行修改。

当我将tеxt改为";小工具1";在主应用程序中,并对小部件(WidgetCenter.shared.reloadAllTimelines()(进行更新,小部件不会更新其视图,并且所选选项("小部件1"(也不再被选中,直到我再次选择它(它将显示我需要的数据(。

是否可以更新IntentHandler?

欢迎有任何想法!谢谢

IntentHadler文件:

class IntentHandler: INExtension, ChooseWidgetIntentHandling {

func provideStylingOptionsCollection(for intent: ChooseWidgetIntent, with completion: @escaping (INObjectCollection<Styling>?, Error?) -> Void) {

let stylingConfiguration: [Styling] = Widget.array.map { widget in
let styling = Styling(identifier: widget.name, display: widget.name)
styling.text = widget.text
styling.category = widget.category as? NSNumber

return styling
}

let collection = INObjectCollection(items: stylingConfiguration)

completion(collection, nil)
}
  1. 所选选项-图像
  2. 在我更改了数据(文本(并更新了小部件后,没有任何变化-图像
  3. 所选选项("小工具1"(不再被选中-图像
  4. 当我选择选项时,它会显示我需要的数据-图像

解决方案:在绝望的几周后,我没有找到解决方案,但我成功了。我正在更改func getTimeline中的配置选项。为了避免更改所有配置(在我的情况下是小部件(,我用一个唯一的标识符检查当前配置(只是我的一个选项,它可以是配置的名称或类似的东西(,并只为一个配置更改它。

最新更新