未调用 SiriKit 意图处理程序
Posted
技术标签:
【中文标题】未调用 SiriKit 意图处理程序【英文标题】:SiriKit Intent Handler not being called 【发布时间】:2018-09-25 17:42:43 【问题描述】:我有一个包含 Siri Intents 的应用程序,它们运行良好。您可以让 Siri 启动应用程序,它会按预期执行操作。我所有的意图都需要在应用程序中发生,所以我没有它们的扩展。
但是,使用快捷方式应用程序时,当我使用快捷方式时,该应用程序只会在我的应用程序中停止而不继续,因此 Siri 没有收到处理程序响应。
现在我的委托将从 NSUserActivity 调用内部的一个动作中打开,我将使用一个自定义类来确定它是哪个快捷方式并执行所述动作。
对于每个操作,我确实有符合 IntentHandler 协议的自定义类,并且我在完成处理程序中调用 .success 响应。
这里我认为我可能弄错了。我在自定义类中手动调用 Handler 协议。
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 永远不会完成。我应该手动调用它吗?我需要让扩展程序调用这些函数吗?
【问题讨论】:
你能找到解决办法吗? 如果您的应用没有使用扩展,则没有回调。如果您询问快捷方式应用程序,只需将操作设置为不需要屏幕 【参考方案1】:不调用它的唯一原因是您没有将语音意图扩展添加到您的应用目标Build Phase
部分下的dependencies
列表中。
【讨论】:
以上是关于未调用 SiriKit 意图处理程序的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS 10 中使用 Sirikit 自定义 SendPayment 意图的“MoneySent”意图 UI 屏幕
如何为快捷方式应用自定义 SiriKit 意图扩展以请求允许访问?
SiriKit:在 IntentsDefinition 文件中定义的快捷方式未显示在 macOS 的快捷方式应用程序中?