如何调用 Call Directory Extension 的 `beginRequest`?

How to call `beginRequest` of Call Directory Extension?

我必须测试呼叫阻止和识别。所以我按照以下步骤操作。

(1) 通过 [文件] > [新建] > [目标] 在我的项目中创建一个呼叫目录扩展。

(2) 在呼叫目录扩展中添加一个日志记录以进行测试。

class CallDirectoryHandler: CXCallDirectoryProvider {
  override func beginRequest(with context: CXCallDirectoryExtensionContext) {
    print("test")
  }
}

(3) 在我的项目中调用CallKit的reload函数

CXCallDirectoryManager.sharedInstance.reloadExtension(withIdentifier: "EXTENSION_BUNDLE_IDENTIFIER", completionHandler: { (error) in
  if let error = error {
    print(error.localizedDescription)

  } else {
    print("success")
  }
})

(4) 检查我的应用程序是否已在 Settings > Phone > Call blocking & identification.

中启用

并且 success of 3 被打印出来了,但是 test of 2 没有被打印出来。

有什么我应该检查的吗?

提前致谢。

我认为它被正确调用,因为您可以检查应用目标沙箱上的响应。

在这种情况下,我知道访问日志的唯一方法是进入 Xcode 的 设备 window 并查看device console,您应该能够看到这样的日志:

com.apple.CallKit.CallDirectory: ...

您也可以尝试通过在这一行直接放置断点来调试它:

print("test")

另请查看教程,了解您的扩展程序和应用程序沙箱之间的设置是否有任何问题,这里有一个很好的教程:https://pusher.com/tutorials/callkit-ios-part-1