首页 > 解决方案 > 如何向自定义意图处理程序提供动态数据?

问题描述

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

我有一个名为 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))
    }
}

但这似乎也不起作用,因为它仍然给我相同的响应。我不明白什么/我怎样才能完成这项工作?

标签: swiftsirikitwidgetkit

解决方案


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


推荐阅读