【发布时间】:2019-12-12 15:17:03
【问题描述】:
我正在使用测试应用程序和扩展程序来尝试 SiriKit 驱魔。我的分机根本没有被调用,我不知道为什么。我在另一个应用程序中有一个可用的 SiriKit 扩展程序,它莫名其妙地停止响应 - 因此这个测试应用程序。
这是我在测试应用中设置 SiriKit 所做的:
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 文件添加到应用程序(我也测试将其添加到扩展程序):
10) 在目标部署信息区域中仔细检查应用和扩展目标是否至少需要 iOS 13.2 版本:
11) 然后我在运行 iOS 13.3 的 iPhone 上安装该应用程序,在它启动后授予 Siri 权限,并尝试使用 Siri 添加培根。它根本不会调用我的分机,而是将其添加到内置提醒应用中。
12) 我直接从设备上的 XCode 启动扩展程序,同样的交易 - 我的扩展程序永远不会被调用。
我知道注册 Siri 语言可能需要一段时间,但我这几天一直在搞砸:
不确定它是否相关,但就像我说的那样,我让 Siri 在不同的应用程序中工作 - 未部署到应用程序商店。我花了一些时间来处理应用程序中的其他功能,现在又回到了 Siri 集成,却发现它不再响应了。我已经回滚到我上次已知的提交,Siri 工作只是发现它现在在那个(已知良好的)提交中也不起作用。
帮助!我为此浪费了好几天!发生了什么或我错过了什么?!
【问题讨论】: