iOS中的呼叫目录扩展如何更新

Dan*_*man 3 directory ios callkit

我有一个正在开发的应用程序,我想使用CallKit的呼叫目录扩展来存储几千个电话号码.

我感到困惑的是,扩展如何以及何时被调用?每次打电话都不会发生这种情况.是否会在应用程序启动时发生?

我问的原因是,我不想在我的应用程序中保留数千个电话号码.我不希望用户看到这些电话号码(除非他们接到其中一个电话).所以,我想要做的是使用Extension一次保存电话号码,从Web服务加载号码,但只是定期.

谢谢!

Pau*_*w11 7

只要用户从来电显示设置开启,就会加载扩展程序.您也可以使用reloadExtension方法手动重新加载它CXCallDirectoryManager.

您需要使用应用程序组在主应用程序和扩展程序之间共享数据.

您的主应用程序负责定期获取数据(使用您喜欢的任何方法;例如用户手动触发或后台获取)并更新共享数据库.然后它调用CXCallDirectoryManager.sharedInstance.reloadExtension(withIdentifier:completionHandler:)重新加载扩展.identifier是CallKit扩展名的字符串包ID.

扩展只需要从共享数据库中检索所有数据并将其注册到 CXCallDirectoryExtensionContext