Я создал базовое расширение Call Directory Extension в Xcode. Пример кода, который поставляется вместе с ним, показывает, как заблокировать телефонный номер или отобразить информацию о номере телефона. Здесь голый минимум кода требуется заблокировать телефонный номер 22334455:Как отобразить идентификатор вызывающего абонента (добавить идентификационную запись) с помощью CallKit на iOS 10
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, но я не могу получить это работать.
Блокировка работает нормально, но если я попытаюсь отобразить идентификатор вызывающего абонента, вместо этого телефон отобразит номер телефона. Он не показывает текст «Telemarketer», который я пытаюсь добавить.
Что мне не хватает?
Есть ли способ получить номер телефона, который в настоящее время звонит, вместо того чтобы помещать все известные числа и метки в вызов beginRequest? – Steve
Я не уверен, я хотел бы знать это сам. Мой план состоит в том, чтобы иметь тысячи чисел, поэтому я надеюсь, что можно каким-то образом заполнить CallDirectory по расписанию, а не когда телефон звонит. –
Да, я тоже - мой план состоял бы в том, чтобы добавить около 50 000 номеров. Возможно, я мог бы просто добавить db-запрос, прежде чем я должен добавить 'em all – Steve