我有一个非常简单的
AppIntent
和AppShortcutsProvider
。它在“快捷方式”应用程序中运行良好,但在询问 Siri 时却不起作用。
// MARK: - OpenLibrary
struct OpenLibrary: AppIntent {
static let title: LocalizedStringResource = "Open Library"
static let description = IntentDescription("Opens your saved songs and playlists.")
static var openAppWhenRun: Bool = true
@MainActor
func perform() async throws -> some IntentResult & ReturnsValue {
if let url = URL(string: "appName://library/open") {
await UIApplication.shared.open(url)
}
return .result()
}
}
struct OpenLibraryShortcutsProvider: AppShortcutsProvider {
static var appShortcuts: [AppShortcut] {
AppShortcut(
intent: OpenLibrary(),
phrases: [
"Open Library in \(.applicationName)",
"Open \(.applicationName) Library",
"Open my library in \(.applicationName)",
"Open my \(.applicationName) Library"
],
shortTitle: "Open Library",
systemImageName: "rectangle.stack.fill"
)
}
static var shortcutTileColor: ShortcutTileColor = .lightBlue
}
我在 iPhone 上对 Siri 说:“在 {appName} 中打开我的库”,Siri 会回复“{appName} 尚未通过 Siri 添加对此的支持”。正如我之前提到的,如果我创建并运行它作为快捷方式,它就可以正常工作。 URL 处理正确。
我现在正在学习
AppIntent
。接下来我可以尝试什么?