如何为自定义意图处理程序提供动态数据?

问题描述

上下文:我正在为创建的新iOS 14小部件使用名为TestConfiguration的自定义意图,并且已选中“动态选项”。我的目标是允许用户编辑小部件 视图,基于从后端检索的列表中选择的选项,并使更改反映在小部件本身上。

我有一个名为IntentHandler的类,该类遵循TestConfigurationIntentHandling。在这种委托方法

func provideAssetsOptionsCollection(for intent: TestConfigurationIntent,with completion: @escaping (INObjectCollection<TestIntentItem>?,Error?) -> Void) {

我尝试在此委托方法调用后端,但它总是告诉我“此参数未提供任何选项”。因此,我在文档中进行了挖掘,看到了确认委托方法并按如下方式实现了它:

func confirm(intent: TestConfigurationIntent,completion: @escaping (TestConfigurationIntentResponse) -> Void) {
    completion(TestConfigurationIntentResponse(code: .inProgress,userActivity: nil))
    backendService.fetchData() { result in
        //format all the data
        completion(TestConfigurationIntentResponse(code: .success,userActivity: nil))
    }
}

但这似乎也不起作用,因为它仍然给我相同的响应。我不了解什么/如何完成?

解决方法

请确保在iOS 14.0设备上进行测试时,Intent Handler的目标版本也设置为iOS 14.0,而不是iOS 14.1。