CallKit 扩展开始请求

CallKit extension begin request

我正在开发一个包含被阻止号码数据库的应用程序。 在我的 beginRequest 方法中,我正在异步连接到我的在线数据库并在完成块中调用 context.completeRequest()。什么时候调用这个方法? Apple 文档对我来说不清楚 - 可以多次调用吗?主要原因是要使设备中的阻止号码列表与我的数据库保持最新。

所以问题:

  1. 异步请求在 CallKit 目录处理程序中可用吗?

  2. 是否多次调用了beginRequest方法?

  3. 如何在我的应用程序外部创建类似弹出窗口的扩展程序,以便在不进入我的应用程序的情况下报告垃圾邮件?喜欢第三张截图的here

来自Apple Documentation

Because this method is called only when the system launches the app extension and not for each individual call, you must specify call identification information all at once; you cannot, for example, make a request to a web service to find information about an incoming call.

您可以在 beginRequest 中使用异步方法来检索您的数据。异步获取完成后,您可以在最终调用 completeRequest.

之前用每个数字调用 addBlockingEntry

我怀疑您在链接应用中提到的屏幕是从联系人的 "Share Contact" 按钮调用的共享扩展。

当您更新了阻止数据后,您可以通过从主应用程序调用 CXCallDirectory.sharedInstance.reloadExtension 来刷新您的阻止数据;当用户请求或使用后台获取时,您可以响应静默推送来执行此操作。