美文网首页iOSiOS App Extension
iOS Call Directory Extension 实现来

iOS Call Directory Extension 实现来

作者: lon_jack | 来源:发表于2017-01-12 22:47 被阅读776次

在iOS10之后,苹果开放了CallKit这个框架,该框架允许语音或者视讯电话的开发者讲UI界面整合到iPhone原生的电话App中,该章节我们讲讲如何通过CallKit的拓展Call Directory Extension来实现来电识别,它的大概原理是,app通过系统提供的接口,预先将需要识别的号码和对应的识别结果(如:136xxxxxxxx -> 张三)写入到系统内部的数据库中,然后来电时,系统会根据预设的号码进行识别,但是应用本身并不能参与识别的过程,因此也不用担心用户隐私信息被泄露的问题。

主要用到下面三个方法:
1、该方法会在用户开启权限的时候自动调用

- (void)beginRequestWithExtensionContext:(CXCallDirectoryExtensionContext *)context ;

2、该方法是添加黑名单

- (BOOL)addBlockingPhoneNumbersToContext:(CXCallDirectoryExtensionContext *)context ;

3、该方法是添加需要识别的号码与识别的身份

- (BOOL)addIdentificationPhoneNumbersToContext:(CXCallDirectoryExtensionContext *)context ;

当然我们不可能每次都是在用户开启权限的时候才去写入数据,所以还需要一个更新数据的接口方法:

- (void)reloadExtensionWithIdentifier:(NSString *)identifier completionHandler:(nullable void (^)(NSError *_Nullable error))completion;

需要注意点地方:
1、添加识别号码的格式
手机号码格式:86+手机号码,如果不加86的话,会导致无法识别;
座机号码格式:86+区号(区号第一个0不需要),如:0255XXXXXXXX,为86755XXXXXXXX

ps:这里只做个大概记录,如感兴趣的或者需要demo的可以简信我。。。

相关文章

  • iOS Call Directory Extension 实现来

    在iOS10之后,苹果开放了CallKit这个框架,该框架允许语音或者视讯电话的开发者讲UI界面整合到iPhone...

  • iOS使用Call Directory Extension实现来

    最近项目中需要增加一个新的需求,来电身份识别.之前没有做过相关功能的开发.因此在网上搜索资料查到了一个关键的东西叫...

  • CallKit

    创建一个call项目 Call Directory Extension创建成功后,会发现多了下面几个文件: Cal...

  • iOS来电号码识别

    Demo 一、创建一个新的target 选择Call Directory Extension 选中主程序YSCal...

  • iOS10 CallKit 之来电识别功能

    先导入 Call Directory Extension 导入完成后,项目会多了一个文件夹文件夹里的文件是Call...

  • category与extension

    category与extension 转载iOS实现多继承的几种方式 转载

  • APP Extension 与 APP之间的数据共享

    APP Extension 是iOS 8以后推出的一个新功能,我们可以通过App Extension快捷的实现一些...

  • iOS Push Story

    简介 iOS中可以通过两个Extension来推送消息UNNotificationServiceExtension...

  • ios好文

    iOS10 通知 extension 之 Service Extension 你玩过了吗? iOS10 通知 ex...

  • iOS8-Today Extension

    Extension Point 系统中支持extension的区域,extension的类别也是据此区分的,iOS...

网友评论

    本文标题:iOS Call Directory Extension 实现来

    本文链接:https://www.haomeiwen.com/subject/gfypvttx.html