我正在开发一个应用程序,我想使用CallKit的Call Directory扩展来存储几千个电话号码。
我感到困惑的是,扩展是如何以及何时被调用的?似乎并不是每个电话都会发生这种情况。当应用程序启动时会发生这种情况吗?
我问的原因是,我不想把成千上万的电话号码保存在我的应用程序中。我不想让用户看到这些电话号码(当然,他们会接到其中一个电话)。因此,我想要做的是使用扩展保存电话号码一次,从web服务加载号码,但只能定期进行。
谢谢!
发布于 2018-07-22 01:56:47
每当用户从调用方ID设置打开扩展名时,就会加载扩展。您还可以使用reloadExtension方法CXCallDirectoryManager手动重新加载它。
您需要使用app在主应用程序和扩展程序之间共享数据。
您的主应用程序负责定期获取数据(使用您喜欢的任何方法;用户或后台获取的手动触发器)和更新共享数据库。然后调用CXCallDirectoryManager.sharedInstance.reloadExtension(withIdentifier:completionHandler:)来重新加载扩展。identifier是CallKit扩展的字符串包id。
扩展只需从共享数据库检索所有数据并将其注册到CXCallDirectoryExtensionContext。
https://stackoverflow.com/questions/51461423
复制相似问题