ios - SiriKit Intent Handler 没有被调用

标签 ios swift sirikit

我有一个包含 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/

相关文章:

ios - 如何使用 siri-kit iOS10 调用 voip 电话

ios - SiriKit:在主应用程序中处理意图时如何设置输出属性?

ios - 如何区分UITableView自定义section点击和section第一行点击?

swift 2.0,UITableView : Fetch index of 'checked' rows

ios - 如何快速隐藏collectionview中的特定单元格

swift - 类实例变量初始化顺序?

swift - 抑制警告: The Swift file cannot be processed by a Copy Bundle Resources build phase

ios - 如何在swift中的动态tableview中创建动态tableview?

ios - 如何解析响应 xml 字符串?

ios-监听其他应用程序的键盘通知