我正在迅速实现CallKit,并且在直接从最近的日志中拨打电话时遇到了NSUserActivity问题。
在最近的日志中点击我的应用程序条目时,我的应用程序正在启动,但是AppDelegate的任何方法都没有调用。
我已经从应用程序功能打开了Siri,并在info.plist中添加了NSUserActivityType。我在NSUserActivityType中添加了INStartAudioCallIntent和INStartVideoCallIntent。我在AppDelegate类中实现的方法如下:
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
print("Restoration")
return true
}
在最近的日志中点击我的应用程序的任何条目时,调试器控制台中将打印以下行。
AppDelegate-BAA416CD-ED84-4161-A054-B2192AFAD47A应用程序:continueUserActivity:restorationHandler:]已附加交互,但未处理
答案 0 :(得分:1)
将函数的签名(即restorationHandler
参数类型从([Any]?) -> Void
更改为([UIUserActivityRestoring]?) -> Void
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
//if its a call
guard let handle = userActivity.startCallHandle else {
print("Could not determine start call handle from user activity: \(userActivity)")
return false
}
}
我更改了签名,它对我有用。