WidgetKit 自定义 Intent 参数选择
WidgetKit customize Intent parameters selection
我正在使用 WidgetKit、SwiftUI 等为 iOS 中的应用构建小部件。
我创建了一个自定义意图和自定义对象以在应用程序中使用,当点击 "Edit Widget"
时,我从 UserDefaults
.
中获取了一个自定义项目列表
问题是,我可以自定义 iOS 向我显示的第二个视图的外观以及项目列表等吗?
这就是我所说的观点:
环顾四周,我发现了这个:https://developer.apple.com/videos/play/wwdc2020/10194
这给了我很多好的提示,但对我想要实现的目标一无所知。
他们在视频中展示了这个:
这似乎是相同的视图,但有一些自定义。
我的最终目标是删除搜索栏。
非常感谢!
当您为 Intent
的 INObjectCollection
创建项目时,您可以设置:
identifier
display
pronunciationHint
subtitle
image
以下是如何将 subtitle
和 image
添加到 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)
}
}
我正在使用 WidgetKit、SwiftUI 等为 iOS 中的应用构建小部件。
我创建了一个自定义意图和自定义对象以在应用程序中使用,当点击 "Edit Widget"
时,我从 UserDefaults
.
问题是,我可以自定义 iOS 向我显示的第二个视图的外观以及项目列表等吗?
这就是我所说的观点:
环顾四周,我发现了这个:https://developer.apple.com/videos/play/wwdc2020/10194 这给了我很多好的提示,但对我想要实现的目标一无所知。
他们在视频中展示了这个:
这似乎是相同的视图,但有一些自定义。
我的最终目标是删除搜索栏。 非常感谢!
当您为 Intent
的 INObjectCollection
创建项目时,您可以设置:
identifier
display
pronunciationHint
subtitle
image
以下是如何将 subtitle
和 image
添加到 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)
}
}