ios - 当用户从 callkit 按下 facetime 按钮时没有委托(delegate)或通知

标签 ios iphone video callkit

我有一个应该支持视频通话的 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/

相关文章:

ios - 检测何时将我的 UIView 子类添加到另一个 UIView

iphone - iOS 本地通知打开特定选项卡?

在 IE9 和 Firefox 中使用全屏模式的 HTML5 视频

jakarta-ee - 使用 WebRTC 的 Web 应用程序中的视频通话功能

ios - 使用 Sprite Kit 变换物理体

ios - 工具栏中的完成按钮问题

iphone - iOS 智能应用横幅 - 在 iPad 上显示,而不是在 iPhone 上显示

iphone - Facebook:无法将图片发布到 Feed

algorithm - WinRar 使用了哪种数据压缩算法?

ios - 此解码器只会解码采用 NSSecureCoding 的类