前言
最近公司产品项目要求实现来电识别的功能,来电识别的内容具体是,显示该来电者的职位及简单的职位描述。接到这个任务后,一脸懵逼,没接触过这个啊🤦♀️,还是找百度大神帮忙吧,果然案例一堆但有瑕疵,决定还是自己记录一下吧,以便后续编程之路能走的顺溜😸。
着手准备
关于来电识别功能需要用到拓展应用的知识,苹果在iOS10系统推出了callkit功能,实现将APP的通讯录的信息同步到系统中,可以不把人员信息加到通讯录中,实现来电号码识别。好啦,废话少说,直接上干货。
首先要打开苹果的开发者账号,登录你的账户,打开后看到这样的界面定位到app Groups一栏,创建bundle ID 及.appex的描述文件,创建步骤如下:








需要注意的地方:填写配置文件的的名称,一定要与主应用的配置文件名称进行区分。
接下来是xcode的配置
1.扩展应用设置(生成uexCallKit.appex):

a) 在TARGETS中设置Bundle ID(必须填写同申请的扩展程序Bundle ID相同)
b)在TARGETS中设置siging文件(必须导入同申请的扩展程序Bundle ID相同的配置文件)

c) 在TARGETS中Capabilities中,打开AppGroups选项,添加标识符(标识符必须同申请的APP Groups相同)
主应用设置:

a) 工程编译,将生成的uexCallKit复制到EmbedAppExtension文件中


b) 对uexCallKit进行重新签名,并将entitlements写入到uexCallKit中
1.在EmebedAppExtensions目录下打开终端(cd 到 EmebedAppExtensions下)
codesign -f -s '证书名称' --entitlements 扩展程序生成的uexCallKit.entitlements uexCallKit.appex

c) 主程序的TARGETS中设置Bundle ID
d) 主程序的TARGETS中设置signing配置文件为空

e)主程序的TARGETS的Capabilities中,打开AppGroups,添加标识符

f) 主程序中,将扩展程序的配置文件放到AppCanPlugin文件夹下,并在Build phases中添加Run Script,添加运行脚本,完成扩展程序配置文件上传至服务器;


好啦,基本集成就是这样啦,集成过程要认真仔细,要不然会导致识别异常。接下来就是代码实现部分了。
代码实现:
1.从服务器获取座机号码及手机号码,对数据做处理

2.保存数据到拓展应用中

3.获取权限状态

4.更新数据,如有新加入的数据要做相应的更新

5.从拓展应用中获取手机号码的规则及实现




实现完成后,还要在真机设置里 电话--来电阻止与身份识别--打开你的APP开关 ,这样就可以进行真机调试了。实现的界面结果为:(此图片从其他地方截取)

结束语
集成过程中一定要注意号码的数据格式,我在代码注释中也有说明设置号码的规则,其他就是申请描述文件时注意下就可以了,今天的整理就先到这,有不妥的地方还请更正,共同成长🙂。
网友评论