gpt4 book ai didi

ios - NSUserActivity:当用户从我的应用程序的最近日志中点击(或调用电话)时,将调用哪个方法?

转载 作者:行者123 更新时间:2023-11-28 05:38:20 38 4
gpt4 key购买 nike

我正在快速实现 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 application:continueUserActivity:restorationHandler:] has an interaction attached but it is not handled

最佳答案

更改函数的签名,即将 restorationHandler 参数类型从 ([Any]?) -> Void 更改为 ([UIUserActivityRestoring]?) -> 无效

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
}
}

更多详情: https://github.com/Lax/Learn-iOS-Swift-by-Examples/blob/master/Speakerbox/Speakerbox/AppDelegate.swift

我更改了签名,它对我有用。

关于ios - NSUserActivity:当用户从我的应用程序的最近日志中点击(或调用电话)时,将调用哪个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57805493/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com