需求:需要实现项目中根据号码从服务器查询返回的标记写入calllkit放骚扰标记系统库中,来电时显示该标记
最终的效果如图所示:
一、准备工作
1、新建一个swift 项目
2、创建callkit扩展:选择file->new->target,选择Call Directory Extension,输入扩展的名称,创建好后选择Activate
3、想实现项目与扩展的数据共享,需要打开Capabilities-->App Groups的开关,并点击“+”新建一个app groups(一般命名是以group. 开头)
4、同样的,项目中也需要打开Capabilities-->App Groups的开关,选择3中创建好的app groups
5、运行程序,需要在设置-->电话-->来电阻止与身份识别-->找到项目打开对应的开关
准备工作做好了,下面代码逻辑的展示
1、在主界面创建3个按钮,分别为 检查权限、写入共享数据、读取共享数据
1)创建扩展Manager、文件Manager、存储数据的dic、以及app group的url,并初始化
var exManager : CXCallDirectoryManager!
var fileManager : FileManager!
var dic: NSMutableDictionary!
var containURL : URL!
override func viewDidLoad() {
super.viewDidLoad()
dic = NSMutableDictionary.init()
exManager = CXCallDirectoryManager.sharedInstance
fileM