Обзор
Обзор
@qor/call-screening — идентификация и блокировка входящих звонков в гибридных приложениях QOR.
Плагин @qor/call-screening добавляет в гибридное приложение (Nuxt 4 + Capacitor) защиту от нежелательных звонков:
- Идентификация — подсказка при входящем звонке («Спам», «Банк N», «Курьерская служба»).
- Блокировка — отклонение звонков по блок-листу и правилам до первого гудка.
- Управление списками из JS: блок-лист и список идентификации в E.164.
- Журнал проверенных и заблокированных звонков.
Логика проверки номера никогда не исполняется в JS: WebView в момент звонка, как правило, не запущен. JS-слой — это конфигурация, списки, журнал и события; сам скрининг выполняет нативный код (Android) или системный механизм (iOS).
Матрица возможностей
| Возможность | Android | iOS ≤ 17 | iOS 18+ |
|---|---|---|---|
| Блокировка по локальному списку | Да | Да (Call Directory) | Да |
| Подсказка-метка при звонке | Да (оверлей/уведомление) | Да (метки Call Directory) | Да (live) |
| Онлайн-проверка в момент звонка | Да (нативный HTTP) | Нет | Да (PIR-сервер) |
| Событие в JS о проверенном звонке | Да | Нет | Нет |
| Журнал заблокированных | Да | Частично (лог загрузок расширения) | Нет |
Разница между платформами — принципиальная, поэтому весь API построен вокруг контракта деградации: каждая возможность отдаёт состояние available / degraded / unavailable с машиночитаемой причиной и способом восстановления. Отказ в разрешении или старая ОС — штатное состояние, а не ошибка.
Состав поставки
| Что | Где |
|---|---|
| Плагин (TS + Kotlin + Swift) | packages/call-screening |
Композабл useCallScreening() | @qor/hybrid |
Компоненты QorProtectionStatus, QorScreeningLog | @qor/hybrid |
| Example-приложение (чистый Capacitor) | packages/call-screening/example |
| Инструкция iOS-extension | packages/call-screening/docs/ios-extension-setup.md |
| Гайд по деградации | packages/call-screening/docs/degradation-guide.md |
| Серверный компонент Live Lookup (iOS 18+) | packages/call-screening/docs/live-lookup-server.md |
Как подключить плагин к приложению — на следующей странице: Интеграция.