如何在iOS 10上使用CallKit显示来电显示(添加识别条目)

时间:2016-09-20 19:16:17

标签: ios swift xcode callkit

我在Xcode中创建了一个基本的呼叫目录扩展。随附的示例代码显示了如何阻止电话号码或显示有关电话号码的信息。以下是阻止电话号码22334455所需的最少代码:

class CallDirectoryHandler: CXCallDirectoryProvider {

    override func beginRequest(with context: CXCallDirectoryExtensionContext) {
        context.delegate = self

        context.addBlockingEntry(withNextSequentialPhoneNumber: 22334455)
        //context.addIdentificationEntry(withNextSequentialPhoneNumber: 22334455, label: "Telemarketer")

        context.completeRequest()
    }
}

extension CallDirectoryHandler: CXCallDirectoryExtensionContextDelegate {
    func requestFailed(for extensionContext: CXCallDirectoryExtensionContext, withError error: Error) { }
}

根据Xcode中的示例,通过使用方法addIdentificationEntry而不是addBlockingEntry来显示调用者ID应该同样容易,但我无法使其工作。

阻止工作正常,但如果我尝试显示来电显示,则手机会显示电话号码。它没有显示我尝试添加的文本“Telemarketer”。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

答案很简单。

addIdentificationEntry()需要国家/地区代码,addBlockingEntry()不需要。

当我在电话号码的开头添加47(挪威的国家代码)时,它有效。以下是显示挪威电话号码22334455(+4722334455)的来电显示的工作代码:

class CallDirectoryHandler: CXCallDirectoryProvider {

  override func beginRequest(with context: CXCallDirectoryExtensionContext) {
    context.delegate = self

    context.addIdentificationEntry(withNextSequentialPhoneNumber: 4722334455, label: "Telemarketer")

    context.completeRequest()
  }
}

addBlockingEntry()适用于22334455和4722334455作为输入。