未调用 SiriKit 扩展

Posted

技术标签:

【中文标题】未调用 SiriKit 扩展【英文标题】:SiriKit extension not called 【发布时间】:2019-12-12 15:17:03 【问题描述】:

我正在使用测试应用程序和扩展程序来尝试 SiriKit 驱魔。我的分机根本没有被调用,我不知道为什么。我在另一个应用程序中有一个可用的 SiriKit 扩展程序,它莫名其妙地停止响应 - 因此这个测试应用程序。

这是我在测试应用中设置 SiriKit 所做的:

1) 向应用目标添加 Siri 授权:

2) 在应用的 info.plist 中添加 Siri 使用说明:

3)添加了一个新的Intents Extension测试目标,并将我想要的Intent添加到扩展info.plist中:

4) 连接 IntentHandler 类:

class IntentHandler: INExtension 
override func handler(for intent: INIntent) -> Any 
    print("IntentHandler.handle")
    switch intent 
        case is INAddTasksIntent: return AddIntentHandler()
        default: break
    
    return self


5) 创建了我的处理程序类:

class AddIntentHandler: NSObject, INAddTasksIntentHandling 
func handle(intent: INAddTasksIntent, completion: @escaping (INAddTasksIntentResponse) -> Void) 
    print("AddIntentHandler.handle")
    return completion(INAddTasksIntentResponse(code: .success, userActivity: nil))


6) 在 AppDelegate 中获取使用 Siri 的权限:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool 
    INPreferences.requestSiriAuthorization( status in
        if status == .authorized 
            print("Ok - authorized")
        
    )
    return true

7) 将 AppIntentVocabulary.plist 文件添加到应用程序(我也测试将其添加到扩展程序):

8) 我仔细检查了扩展程序是否嵌入在应用程序目标中:

9) 并且扩展目标显示正确的支持意图:

10) 在目标部署信息区域中仔细检查应用和扩展目标是否至少需要 ios 13.2 版本:

11) 然后我在运行 iOS 13.3 的 iPhone 上安装该应用程序,在它启动后授予 Siri 权限,并尝试使用 Siri 添加培根。它根本不会调用我的分机,而是将其添加到内置提醒应用中。

12) 我直接从设备上的 XCode 启动扩展程序,同样的交易 - 我的扩展程序永远不会被调用。

我知道注册 Siri 语言可能需要一段时间,但我这几天一直在搞砸:

不确定它是否相关,但就像我说的那样,我让 Siri 在不同的应用程序中工作 - 未部署到应用程序商店。我花了一些时间来处理应用程序中的其他功能,现在又回到了 Siri 集成,却发现它不再响应了。我已经回滚到我上次已知的提交,Siri 工作只是发现它现在在那个(已知良好的)提交中也不起作用。

帮助!我为此浪费了好几天!发生了什么或我错过了什么?!

【问题讨论】:

【参考方案1】:

毕竟问题出在 100% 是我试图用来调用我的应用程序扩展的语言。

谁知道这行不通,“Appname,将 bacon 添加到列表中”,但这会:“将 bacon 添加到 AppName 中的列表中”。如果您以应用名称开头,Reminders 会捕获它并将其放入提醒列表中。

我将开始一个关于触发 Intent 的新问题。很抱歉造成混乱。

【讨论】:

【参考方案2】:

我遇到了同样的问题,通过重启我的物理设备解决了这个问题

【讨论】:

以上是关于未调用 SiriKit 扩展的主要内容,如果未能解决你的问题,请参考以下文章

如何为快捷方式应用自定义 SiriKit 意图扩展以请求允许访问?

SiriKit:在 IntentsDefinition 文件中定义的快捷方式未显示在 macOS 的快捷方式应用程序中?

sirikit

iOS SiriKit:在意图“解决”和“处理”方法之间传递数据

iOS10 SiriKit QQ适配详解

付款意图 Sirikit 仍然无法正常工作