我有一个正在开发的应用程序,我想使用CallKit的呼叫目录扩展来存储数千个电话号码。
我很困惑的是,如何以及何时调用该扩展名?似乎并不是每个电话都会发生这种情况。启动应用程序时会发生这种情况吗?
我要问的原因是,我不想在应用程序中保留成千上万个电话号码。我不希望用户看到这些电话号码(当然,除非他们接到其中一个打来的电话)。因此,我要做的是使用扩展程序一次保存电话号码,并从Web服务加载电话号码,但只能定期进行。
谢谢!
答案 0 :(得分:6)
每当用户从呼叫者ID设置中打开扩展名时,都会加载该扩展名。您也可以使用reloadExtension
的{{1}}方法手动重新加载它。
您需要使用应用程序组在主应用程序和扩展程序之间共享数据。
您的主应用程序负责定期获取数据(使用您喜欢的任何方法;例如由用户手动触发或后台获取)并更新共享数据库。然后,它调用CXCallDirectoryManager
重新加载扩展名。 CXCallDirectoryManager.sharedInstance.reloadExtension(withIdentifier:completionHandler:)
是您的CallKit扩展的字符串捆绑ID。
扩展名仅需要从共享数据库中检索所有数据,并向identifier