如何在实际应用中实现 CallKit?

Posted

技术标签:

【中文标题】如何在实际应用中实现 CallKit?【英文标题】:How to implement CallKit in real app? 【发布时间】:2018-02-08 08:40:21 【问题描述】:

我正在尝试在我的 VoIP 应用程序中实现 Apple CallKit。我正在使用 Xcode 9.2、Swift 4.0.3、ios 10.3。问题是我不知道该怎么做。我曾尝试在网络上搜索教程,但我未能找到基于真实系统的教程。他们都使用假系统,只模拟呼叫!我有一个类,它与负责调用的第三方库一起规则。所以,如果我有来电发生,一些事件会通过观察者。像这样:

NotificationCenter.default.addObserver(forName: Notification.Name(rawValue: Notifications.Name.transMessage.rawValue), object: nil, queue: nil)  notification in
   self.handleLibtransEvents()

其中 self.handleLibtransEvents 是私有函数调用。 另外,我在 AppDelegate.swift 中安装了有效的 PUSH 通知系统。像这样:

func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) 
    print("NOTIFICATION ERROR: \(error)")


func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) 
    let pushToken = deviceToken.reduce("", $0 + String(format: "%02X", $1)).lowercased()
    print("pushToken: \(pushToken)")



func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) 
    if UIApplication.shared.applicationState != UIApplicationState.active 
        // PUSH: Incoming call event!
    

所以有两个地方,我可以接听来电,但我不知道如何通过 Apple CallKit 接听真正的电话。我将感谢任何帮助、建议、电话示例。谢谢! P.S. 我已经正确安装了所有设置。

【问题讨论】:

callkit 演示在 github 上可用,下载代码并在设备上运行以了解功能。 【参考方案1】:

CallKit 基本上是一个框架,用于在您收到 voip 呼叫或拨打新电话时显示呼叫 UI,因此,如果您向其传递一个数字 n 假设它会拨打电话,它不会做任何事情,保留它请注意,它只显示用于接听电话和拨打电话的 UI。 要拨打电话和接听电话,您需要Sinch 等第三方服务。

【讨论】:

以上是关于如何在实际应用中实现 CallKit?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone 应用中实现谷歌聊天

callkit来电语音问题

如何在 Spotify 应用程序中实际设置 DefaultTabs?

如何在 React 中实现分页

如何在flutter中实现包月? (新方法)

如何在android中实现图像视图的缩放效果?