我正在使用测试应用和扩展程序来尝试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
}
10)在目标部署信息区域中再次检查应用程序和扩展目标是否至少需要iOS版本13.2:
11)然后,我将该应用程序安装在运行iOS 13.3的iPhone上,在启动后给Siri权限,然后尝试使用Siri添加培根。它根本不会调用我的扩展程序,而是将其添加到内置的提醒应用中。
12)我直接从设备上的XCode启动扩展,相同的交易-我的扩展从未被调用。
我知道注册Siri语言可能要花一些时间,但好几天以来我一直在搞砸:
不确定是否相关,但是就像我说的那样,我让Siri在其他应用中工作-未部署到应用商店。我花了一些时间来处理应用程序中的其他功能,现在又回到Siri集成中,只是发现它不再响应了。我回滚到Siri工作的最后一次已知提交,只是发现它现在在那个(已知良好)提交中也不起作用。
帮助!我已经为此失去了几天!这是怎么回事或我想念什么?!
我正在使用测试应用和扩展程序来尝试SiriKit驱魔。我的分机号根本没有被呼叫,我也不知道为什么。我在另一个应用程序中有一个正常工作的SiriKit扩展,... ...>
因此,事实证明问题出在我试图调用我的应用扩展程序的语言是100%。
谁知道这不起作用,“ Appname,将培根添加到列表中”,但这将:“将Bacon添加到AppName列表中”。如果您以应用程序名称开头,则“提醒”会捕获它并将其放在提醒列表中。