2016-09-20 1 views
1

Я создал базовое расширение 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», который я пытаюсь добавить.

Что мне не хватает?

ответ

0

Ответ был разочаровывающим простым.

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 в качестве входных данных.

+0

Есть ли способ получить номер телефона, который в настоящее время звонит, вместо того чтобы помещать все известные числа и метки в вызов beginRequest? – Steve

+0

Я не уверен, я хотел бы знать это сам. Мой план состоит в том, чтобы иметь тысячи чисел, поэтому я надеюсь, что можно каким-то образом заполнить CallDirectory по расписанию, а не когда телефон звонит. –

+0

Да, я тоже - мой план состоял бы в том, чтобы добавить около 50 000 номеров. Возможно, я мог бы просто добавить db-запрос, прежде чем я должен добавить 'em all – Steve

Смежные вопросы