我有一个应该支持视频通话的 VoIP 应用程序。所以,我打开应用程序,锁定屏幕,然后接听来电。问题是我没有弄清楚当用户按下“facetime”(视频通话)按钮时如何获得通知。基本上用户被引导到应用程序,但没有发生任何事情,因为我确实知道要听什么委托(delegate)或通知。
我查看了 Skipe 应用程序,当在通话屏幕上按下视频通话按钮时,它似乎会收到通知。因此,当在 Skipe 应用程序中按下“facetime”按钮时,用户将被引导至应用程序并开始视频流。
简而言之,有人可以指出我应该听哪种委托(delegate)或通知,以便在用户按下调用工具包中的视频按钮时收到通知吗?
最佳答案
根据这篇文章:https://stackoverflow.com/a/43487523/6296389 ,有一个 AppDelegate 方法可以在手机锁定时从 native CallKit 屏幕按下视频按钮时通知应用程序。
Objective C 委托(delegate)方法是:
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *restorableObjects))restorationHandler
您应该检查是否:
[userActivity.activityType isEqualToString:@"INStartVideoCallIntent"]
识别接收到的 Action 是否是开始视频意图。
Swift 版本
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
if userActivity.activityType == "INStartVideoCallIntent" {
// treat start video
}
}
关于ios - 当用户从 callkit 按下 facetime 按钮时没有委托(delegate)或通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44115212/