CallKit: добавить номер в список блокировки CXCallDirectoryProvider

Я хочу добавить номер в список блокировки при использовании моего приложения.

В настоящее время я пытаюсь обновить список блокировки, но это не работает.

 let callDirectoryExtensionContext = CXCallDirectoryExtensionContext.init()
    let phoneNumbers: [CXCallDirectoryPhoneNumber] = [ xx_xxx_xxx_xxxx ]
    for phoneNumber in phoneNumbers {
        callDirectoryExtensionContext.addBlockingEntry(withNextSequentialPhoneNumber: phoneNumber)
    }


    let callDirectoryProvider = CXCallDirectoryProvider.init()
    callDirectoryProvider.beginRequest(with: callDirectoryExtensionContext)

    CXCallDirectoryManager.sharedInstance.reloadExtension(withIdentifier: "com.xxxxxxx.xxxxx.CustomCallDirectoryProvider") { (error) in
        if let error = error {
            print(error.localizedDescription)
        }
    }

Возможно ли с помощью CallKit обновить или добавить номера в список блокировки.


person Jas_meet    schedule 24.05.2018    source источник


Ответы (1)


Вы не можете делать такие вызовы произвольно в своем приложении. Вы должны сделать это, создав цель расширения в Xcode, реализуя протокол CXCallDirectoryProvider и реализуя обратный вызов beginRequest. Затем это вызывается, когда iOS определяет, что ваше расширение необходимо загрузить или перезагрузить.

Вам следует прочитать Руководство Apple по расширению приложения.

person Matt Weinecke    schedule 26.05.2018
comment
Я реализовал расширение CXCallDirectoryProvider, которое вызывается при запуске приложения, но я хочу перезагрузить расширение, чтобы обновить список контактов, которые нужно заблокировать, во время работы приложения жизненного цикла. - person Jas_meet; 28.05.2018
comment
Звонок reloadExtension(withIdentifier не работает? - person Debaprio B; 04.12.2019