2017-05-13 97 views
1

我正在开发一个带有阻止号码数据库的应用程序。 在我的beginRequest方法中,我正在与我的在线数据库进行异步连接,并在完成块中调用context.completeRequest()。这种方法何时被调用?苹果文档对我来说不是很清楚 - 可以多次调用吗?主要原因是保持设备中的阻塞号码列表与我的数据库保持一致。CallKit扩展开始请求

所以问题:

  1. 是在CallKit目录处理提供异步请求?

  2. beginRequest方法不止一次调用?

  3. 如何在我的应用程序外部创建类似弹出窗口的扩展程序,以便在不输入我的应用程序的情况下使报告垃圾邮件成为可能?像第三屏截图上的here一样。

回答

2

Apple Documentation

因为只有当系统启动应用程序的扩展,而不是对每个单独的呼叫,您必须指定一下子呼叫标识信息调用该方法;例如,您不能向Web服务请求查找有关来电的信息。

您可以使用beginRequest中的异步方法来检索您的数据。一旦异步获取完成,您可以在最终调用completeRequest之前调用addBlockingEntry与每个数字。

我怀疑你在链接的应用程序中引用的屏幕是从联系人的“共享联系人”按钮调用的共享扩展。

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