文档章节

iOS10 CallKit简单开发

w
 wesk痕
发布于 2016/11/01 10:28
字数 560
阅读 343
收藏 0

iOS10,对于voip 应用的app来了一个强有力的功能,系统级通话界面的支持。 参考之:【Dev Club 分享第十一期】QQ电话适配iOS10 Callkit框架分享 http://dev.qq.com/topic/58009392302e4725036142fc

上面的分享已经对CallKit的主要流程做了比较详细的说明,这边就不重复了。主要说下几点我在实际过程中遇到的比较重要的地方。

1.CXProviderConfiguration 配置项: 如果需要实现类似whatsApp 长按系统联系人中的呼叫或视频 弹出app内拨打该号码的功能。如下图所示: IMG_4118.jpg

那你可能需要实现它的属性supportedHandleTypes 可支持的事件类型,且这个功能只有在这个方法调用到之后,才会注册到系统,所以要注意调用这句话的时机!

typedef NS_ENUM(NSInteger, CXHandleType) {
    CXHandleTypeGeneric = 1,
    CXHandleTypePhoneNumber = 2,
    CXHandleTypeEmailAddress = 3,
} API_AVAILABLE(ios(10.0));

2.CXHandle call的事件:它的value 如果是电话号码,呼入和呼出时,value最好与通讯录中的号码格式保持一致(有无+区号),简单的说就是取系统的手机号码。

        CXHandle *handle = [[CXHandle alloc] initWithType:(CXHandleType)person.personHandle.type value:self.currentPhoneNumber];

maximumCallGroups 不能设置为0 否则在主动拨打时会报错errorCode 7 CXErrorCodeRequestTransactionErrorMaximumCallGroupsReached

3.利用CXCallObserverDelegate的返回,可以比较清楚的知道这个call的流程走向。

看一下demo中.h的方法 能知道大概的思路和使用了吧:

/*** 接收方 展示电话呼入等待接收界面 ****/
- (void)showCallInComingWithName:(NSString *)userName andPhoneNumber:(NSString *)phoneNumber isVideoCall:(BOOL)isVideo;
/**** 拨打方 呼出电话 ****/
- (void)starCallWithUserActivity:(NSUserActivity *)userActivity;

/******* Action **********/
//拨打方 开始连接
- (void)startedConnectingOutgoingCall;
//拨打方 通话连接成功 显示通话时间
- (void)connectedOutgoingCall;
//拨打方 结束通话调用
- (void)endCallAction;

//接听方 结束电话
- (void)finshCallWithReason:(CXCallEndedReason)reason;

/****** commom *****/
//禁音通话
- (void)muteCurrentCall:(BOOL)isMute;
//保留通话
- (void)heldCurrentCall:(BOOL)onHold;
//设置双音频功能
- (void)playDTMFCurrentCall:(CXPlayDTMFCallActionType)playType andDigits:(NSString *)digits;
//设置群组通话
- (void)setGroupCurrentCallWithGroupUUID:(NSUUID *)groupUUID;```

其他的就不多说了,主要查看系统api方法
因为在开发时没有找到OC的demo,下面提供自己针对上面流程写的一个简单demo //https://github.com/weskhen/CallKitManager
有不正确的地方,希望看到的大神帮忙指点下。

© 著作权归作者所有

下一篇: iOS 动画
w
粉丝 2
博文 17
码字总数 14343
作品 0
杭州
程序员
私信 提问
加载中

评论(2)

w
wesk痕 博主

引用来自“小码爱大牛”的评论

你好,我是深圳一家以家居安防为核心的智能家居公司的HR在招聘一位iOS开发架构师兼leader。不知道您自己或者身边同事朋友有没有在看工作机会的呢?如果感兴趣可以发简历到3288771685@qq.com或者加QQ。
( ̄◇ ̄;) 不好意思,我是杭州的
小码爱大牛
小码爱大牛
你好,我是深圳一家以家居安防为核心的智能家居公司的HR在招聘一位iOS开发架构师兼leader。不知道您自己或者身边同事朋友有没有在看工作机会的呢?如果感兴趣可以发简历到3288771685@qq.com或者加QQ。
【腾讯Bugly干货分享】QQ电话适配iOS10 Callkit框架

本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/58009392302e4725036142fc Dev Club 是一个交流移动开发技术,结交朋友,扩展人脉的社群,成员...

腾讯Bugly
2016/10/24
105
0
iOS 10 新特性介绍(转载)

https://github.com/ChenYilong/iOS10AdaptationTips 1. iOS 10 新特性以及适配点 1.1 SiriKit 所有第三方应用都可以用Siri,支持音频、视频、消息发送接收、搜索照片、预订行程、管理锻炼等...

hell03W
2016/09/14
173
0
iOS10开发的最新知识和心得体会

那么在前两天我的Xcode 8.0新特性和iOS10.0开发分享后,短短的时间吸引了很多粉丝,于是我更加坚定要努力,不辜负更多人的期望,经常这一两天挑灯夜战的精心准备,现在将整理出来的iOS10开发...

秦无炎
2016/09/14
46
0
【iOS10】iOS10新特性

1 Swift 3.0 优化了许多API,简化了接口,去掉了不必要的单词等,比如下面这几个例子: a b c d 2 SiriKit 通过官方文档我们可以看到SiriKit框架支持的六类服务分别是: 语音和视频通话 发送...

魔笛GNR
2016/09/13
171
0
工信部叫停苹果 Callkit,微信不能直接接听视频了

苹果有 ARkit、Classkit、Homekit 和 Sirikit 等开发工具,但 Callkit 却并不被人们所熟知。简单来说,这是一款能够将微信等网络电话整合到手机本身的通话功能中的工具,是不是听起来很方便?...

h4cd
2018/05/15
14.6K
99

没有更多内容

加载失败,请刷新页面

加载更多

ArrayList输出的几种方法

ArrayList输出的几种方法!!! import java.util.ArrayList;import java.util.Iterator;import java.util.List; public class ArrayList1 {    public static void main(Str......

柒礼拜
3分钟前
1
0
ZKEYS公有云管理系统账号注册流程

1.进入ZKEYS官网,单击首页右上角免费注册按钮 2.选择注册方式,有手机注册和有限注册两种 3.填写手机或邮箱,设置密码 4.注册完成,即可登录ZKEYS会员中心 单击右上角免费注册按钮 填写手机...

BirdCloud
5分钟前
1
0
好程序员web前端分享web前端入门知识

好程序员web前端分享web前端入门知识,给大家分享一些Web前端工程师要掌握的基础知识和技能,下面一起来看看。 1、网页的基本结构(HTML、CSS) HTML是一种标记语言,而不是编程语言,最基本是...

好程序员官网
7分钟前
2
0
使用pyinstaller打包qt程序提示 找不到.dll问题

使用pyinstaller打包qt程序,运行时提示 找不到.dll问题。 import osimport sysif hasattr(sys, 'frozen'): os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH'] 需要在......

開援带碼
9分钟前
2
0
mysql导入数据库

原链接:https://msd.misuland.com/pd/3223833238703185046 发现row size长度过长,导致出现错误: 解决方案: 查询系统参数: show variables like '%innodb_strict_mode%';show variab......

tobej
11分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部