Запрос на запуск расширения CallKit

Я разрабатываю приложение с базой данных заблокированных номеров. В моем методе beginRequest я выполняю асинхронное подключение к своей онлайн-базе данных и вызываю context.completeRequest() в блоке завершения. Когда вызывается этот метод? Документация Apple мне непонятна. Можно ли ее вызывать несколько раз? Основная причина - поддерживать список заблокированных номеров в устройстве в актуальном состоянии с моей базой данных.

Итак, вопросы:

  1. Доступны ли асинхронные запросы в обработчике каталога CallKit?

  2. Метод beginRequest вызывается более одного раза?

  3. Как я могу создать расширение, такое как всплывающее окно, за пределами моего приложения, которое позволит сообщать о спаме без входа в мое приложение? как здесь на третьем снимке экрана.


person Heisenbug    schedule 13.05.2017    source источник


Ответы (1)


Из документации Apple:

Поскольку этот метод вызывается только тогда, когда система запускает расширение приложения, а не для каждого отдельного звонка, вы должны сразу указать информацию для идентификации звонка; вы не можете, например, сделать запрос к веб-сервису, чтобы найти информацию о входящем звонке.

Вы можете использовать асинхронный метод в beginRequest для получения ваших данных. После завершения асинхронной выборки вы можете вызвать addBlockingEntry с каждым номером, прежде чем, наконец, вызвать completeRequest.

Я подозреваю, что экран, на который вы ссылаетесь в связанном приложении, является расширением общего доступа, которое было вызвано кнопкой «Поделиться контактом» контакта.

Когда вы обновите данные блокировки, вы можете обновить свои данные блокировки, вызвав CXCallDirectory.sharedInstance.reloadExtension. из вашего основного приложения; вы можете сделать это в ответ на тихий толчок, по запросу пользователя или использовать фоновую выборку.

person Paulw11    schedule 13.05.2017