我有一个包含 Siri Intents 的应用程序,它们运行良好。您可以让 Siri 启动该应用程序,它将按预期执行操作。我的所有意图都需要在应用程序中发生,因此我没有针对它们的扩展。
但是,使用“快捷方式”应用程序时,当我使用快捷方式时,该应用程序将仅在我的应用程序中停止,而不会继续,因此 Siri 不会收到处理程序响应。
现在,我的委托(delegate)将从 NSUserActivity 调用内部的操作打开,我将使用自定义类来确定它是哪个快捷方式并执行所述操作。
我确实为每个操作都有符合 IntentHandler 协议(protocol)的自定义类,并且我在完成处理程序中调用 .success 响应。
我认为我可能错了。我在自定义类中手动调用处理程序协议(protocol)。
func handleSiri(_ intent: INItent) {
if intent is ActionIntent {
func handle(intent: ActionIntent, completion: @escaping (ActionIntent Response) -> Void) {
let response = DisconnectIntentResponse.init(code: .success, userActivity: nil)
print("Intent was a success")
completion(response)
}
}
}
但是 Siri 从未完成。我应该手动调用它吗?我需要让扩展程序调用这些函数吗?
最佳答案
未调用此函数的唯一原因是您尚未将 Voice Intent 扩展添加到应用目标的构建阶段
部分下的依赖项
列表中。
关于ios - SiriKit Intent Handler 没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52503981/