如何在 iOS 10 上使用 CallKit 显示来电显示(添加标识条目)
How to display caller id (add identification entry) using CallKit on iOS 10
我在 Xcode 中创建了一个基本的呼叫目录扩展。它附带的示例代码显示了如何阻止 phone 号码或显示有关 phone 号码的信息。这是阻止 phone 号码 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,但我无法让它工作。
阻止工作正常,但如果我尝试改为显示来电显示,phone 只会显示 phone 号码。它没有显示我尝试添加的文本 "Telemarketer"。
我错过了什么?
答案简单得令人沮丧。
addIdentificationEntry() 需要国家代码,addBlockingEntry() 不需要。
当我在 phone 号码的开头添加 47(挪威的国家/地区代码)时,它起作用了。这是显示挪威 phone 号码 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 作为输入。
我在 Xcode 中创建了一个基本的呼叫目录扩展。它附带的示例代码显示了如何阻止 phone 号码或显示有关 phone 号码的信息。这是阻止 phone 号码 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,但我无法让它工作。
阻止工作正常,但如果我尝试改为显示来电显示,phone 只会显示 phone 号码。它没有显示我尝试添加的文本 "Telemarketer"。
我错过了什么?
答案简单得令人沮丧。
addIdentificationEntry() 需要国家代码,addBlockingEntry() 不需要。
当我在 phone 号码的开头添加 47(挪威的国家/地区代码)时,它起作用了。这是显示挪威 phone 号码 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 作为输入。