WidgetKit 自定义 Intent 参数选择

WidgetKit customize Intent parameters selection

我正在使用 WidgetKit、SwiftUI 等为 iOS 中的应用构建小部件。 我创建了一个自定义意图和自定义对象以在应用程序中使用,当点击 "Edit Widget" 时,我从 UserDefaults.

中获取了一个自定义项目列表

问题是,我可以自定义 iOS 向我显示的第二个视图的外观以及项目列表等吗?

这就是我所说的观点:

环顾四周,我发现了这个:https://developer.apple.com/videos/play/wwdc2020/10194 这给了我很多好的提示,但对我想要实现的目标一无所知。

他们在视频中展示了这个:

这似乎是相同的视图,但有一些自定义。

我的最终目标是删除搜索栏。 非常感谢!

当您为 IntentINObjectCollection 创建项目时,您可以设置:

  • identifier
  • display
  • pronunciationHint
  • subtitle
  • image

以下是如何将 subtitleimage 添加到 INObjectCollection 项目的示例:

class IntentHandler: INExtension, TestIntentHandling {
    func provideItemsOptionsCollection(for intent: TestIntent, with completion: @escaping (INObjectCollection<Item>?, Error?) -> Void) {
        let items: [Item] = [
            .init(
                identifier: "1",
                display: "SoupPay Credit",
                subtitle: "8.20",
                image: nil
            ),
            .init(
                identifier: "2",
                display: "SoupPay Titanium Credit",
                subtitle: "2.01",
                image: nil
            ),
            .init(
                identifier: "3",
                display: "Apple Card",
                subtitle: ".28",
                image: nil
            ),
            .init(
                identifier: "4",
                display: "Other Card",
                subtitle: "3.32",
                image: INImage(url: URL(string: "https://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/Stack_Overflow_icon.svg/200px-Stack_Overflow_icon.svg.png")!)!
            ),
        ]
        completion(INObjectCollection(items: items), nil)
    }
}