CallKit的使用介绍

CallKit的功能介绍

CallKit可以帮我们的网络电话提供怎样更好的体验?
锁屏时,有一个来电,现在是这样的


1.jpg


就是一条普通的推送信息,看起来和iMessage的一条信息没有什么区别。
没有锁屏时,如下,都是需要点击后进入应用内再进行操作。


2.jpg


CallKit会带来怎样的改变呢,我们可以看下,
锁屏时,有一个来电


3.jpg


非锁屏时,有来电


4.jpg


接听后


5.jpg


让你的网络电话有类似iphone自带电话的体验,确实很cool
而且call kit还可以让你的在线电话应用和系统电话,FaceTime音频通话,甚至是其他网络电话相互作用


6.jpg


从系统通讯录,通话记录中打开你的电话应用


7.jpg


通过Siri,蓝牙调起你的电话应用拨打电话。系统的免打扰设置对你的应用也是有效的。这就是CallKit。

CallKit的类和分工


8.jpg


CallKit有两个主要的类CXProvider和CXCallController
CXProvider可以将一些外来事件通知给系统


9.jpg


CXCallController可以让系统收到App的一些Request,用户的action,内部的事件。还可以完成上面说的与其他的电话应用进行交互的操作。


10.jpg


Provider想要和系统交互,通过CXCallUpdate来传递信息


11.jpg


系统想要Provider知道用户进行那种操作,通过CXAction来传递信息


12.jpg


controller想要系统知道用户进行了什么操作,通过CXTransaction承载信息


13.jpg

Incoming Call的Demo

先看一下接电话的例子


14.jpg


Demo中有两个比较关键的类SpeakerboxCallManager和SpeakerboxCall
SpeakerboxCallManager是通话的管理类,可以完成拨打电话,挂断电话等功能。
SpeakerboxCall是通话的Model类,保存通话的一些信息。
我们新创建一个ProviderDelegate,它实现了CXProviderDelegate。


15.jpg


初始化方法中,创建了CXProvider对象,设置了Delegate,如果没有用户授权的话,请求用户授权。


16.jpg


可以看到初始化CXProvider对象时还会进行一些配置,包括通话中UI上显示的应用的名字,是否支持视频,应用的icon。代码中配置每组中最多有一个通话,也就是不会出现同时接听两个以上通话的情况。


17.jpg


下面看下当一个电话打进来的时候,我们应该怎样处理
首先,我们会接到推送通知


18.jpg


如果是voip类型的推送,我们可以解析到UUID(通话的唯一标识),handle(谁打的电话)
调用ProviderDelegate的方法,通知系统显示Incoming Call的全屏UI,


19.jpg


注意CXProvider通知系统来电话了,是通过CXCallUpdate传递的信息。
实际代码效果


20.jpg


当用户点击接听,我们还需要对CXProviderDelegate的代理方法进行处理


21.jpg


可以看到系统反馈的用户操作是CXAnswerCallAction,它是CXAction的一种。
CXAction有两种状态,出错调用fail(),成功调用fulfill()。这个操作是必须的,系统才能正确处理UI的显示和进行通话状态的控制。


22.jpg


当接听用户需要挂断电话的时候,同样是处理代理方法


23.jpg


这里还需要强调一点,在call的处理过程中,开发者还需要管理好AudioSession,具体可以参看Demo源码。

Outgoing Call的Demo

拨打电话的处理起来会稍微复杂一点,先看下生命周期示意图


24.jpg


我们看下SpeakerboxCallManager中拨打电话的实现


25.jpg

26.jpg


拨打电话的时候我们会生成一个CXTransaction,它包含一组CXAction,Demo中是CXStartCallAction。
调用CXCallController对象的request方法,请求Start Call。
当系统接受request,进入start call状态后,会通过CXProviderDelegate的代理方法通知App,也就是Demo中的ProviderDelegate。


27.jpg


代码中会执行App拨打电话的逻辑,并且设置connecting和connected的回调block,这样才能保证call的生命周期处理,让CXProvider正确的更新状态。
如果支持通过Siri或者电话通讯录等唤醒你的应用,进行拨打电话的操作,实现AppDelegate的方法。


28.jpg


实际效果如下


29.jpg

30.jpg


连接成功后


31.jpg


我们回到桌面,应用进入后台


32.jpg


可以看到系统上方会显示通话中的提示。点击后可以回到应用。

总结

CallKit到目前为止只提供了讲解视频,没提供编程指南,更多更复杂的功能可能需要等待具体的文档来了解了,比如同时有多个通话处理等。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: iOS微信CallKit版的IPA文件是专门为iOS系统设计的一种安装包格式,用于在iPhone上安装微信CallKit版本的应用程序。CallKit是苹果公司推出的一种开发框架,可以使应用程序与iOS系统的电话应用有更好的集成,提供更流畅的通话体验。 通过安装iOS微信CallKit版的IPA文件,用户可以在iPhone上使用微信进行语音通话,并享受到CallKit的诸多优势。例如,CallKit可以将微信通话呼叫集成到iOS系统的电话应用中,使得微信通话可以像普通电话通话一样方便使用。同时,CallKit还能够将来电号码与微信联系人匹配,方便用户识别来电身份,提高通话的便利性和安全性。 要安装iOS微信CallKit版的IPA文件,首先需要确保iPhone已经越狱。接下来,可以通过iTunes或其他第三方软件将IPA文件导入到iPhone中,并在iPhone上进行安装。安装完成后,用户可以在iPhone的主屏幕上找到微信CallKit应用的图标,点击即可打开应用程序。 总之,iOS微信CallKit版的IPA文件是一种用于安装微信CallKit版本应用程序的文件格式,可以在iPhone上使用,提供更流畅的语音通话体验,将微信通话与iOS系统电话应用更好地集成,提高通话的便捷性和安全性。 ### 回答2: iOS微信CallKit版的IPA文件是一种针对iOS操作系统的应用程序安装包文件。它包含了微信应用程序的所有内容,以便在iPhone或iPad设备上进行安装和使用CallKit是苹果公司提供的一项技术,可以将通讯应用程序集成到iOS操作系统的电话功能中。通过将微信与CallKit集成,用户可以在使用微信进行语音通话时,享受到更好的通话体验、更稳定的网络连接以及更全面的电话功能。 在安装iOS微信CallKit版的IPA文件之前,需要确保设备已经越狱或者使用第三方安装软件进行安装。然后,可以通过将设备连接到计算机并使用iTunes或其他应用程序管理工具进行安装。 安装完成后,用户可以通过点击微信应用程序图标来启动微信CallKit版。与普通的微信应用程序相比,CallKit版提供了更强大的电话功能,如拨号、接听来电、快速拨号等。在进行语音通话时,用户可以享受到更稳定的网络连接,以及与正常电话通话相似的体验。 总之,iOS微信CallKit版的IPA文件是一种用于安装和使用微信应用程序的文件,它集成了CallKit技术,提供更强大的电话功能和更好的通话体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值