Перейти к содержанию

VoIP-звонки в Cordova

Pushwoosh поддерживает уведомления о звонках в стиле VoIP для iOS и Android с помощью плагина pushwoosh-cordova-plugin. Это позволяет использовать нативную функциональность VoIP-звонков, включая UI входящего звонка и события управления звонками.

Перед началом интегрируйте плагин с Application Code вашего проекта Pushwoosh, как описано в руководстве по базовой интеграции.

1. Добавьте плагин Pushwoosh для Cordova с включенной поддержкой VoIP

Anchor link to

Установите плагин с включенным флагом VoIP:

Terminal window
cordova plugin add pushwoosh-cordova-plugin --variable PW_VOIP_IOS_ENABLED=true --variable PW_VOIP_ANDROID_ENABLED=true

Это настроит плагин для поддержки функциональности VoIP на iOS.

2. Проверьте зависимость PushwooshVoIP

Anchor link to

Плагин подключает модуль PushwooshVoIP автоматически. В cordova-ios 8 он добавляет Swift-пакет PushwooshVoIP и не изменяет Podfile. В более ранних версиях cordova-ios он добавляет в ваш Podfile следующую строку:

pod 'PushwooshXCFramework/PushwooshVoIP'

Этот модуль необходим для поддержки VoIP-уведомлений на основе PushKit и обработки звонков на системном уровне.

3. Включите фоновый режим VoIP в Xcode

Anchor link to

Откройте ваш проект в Xcode и выполните следующие шаги:

  1. Перейдите в Signing & Capabilities.
  2. Добавьте возможность Background Modes.
  3. Отметьте опцию Voice over IP.

Это позволит вашему приложению получать входящие VoIP push-уведомления, когда оно находится в фоновом режиме.

4. Запросите разрешение на звонки на Android

Anchor link to

На Android приложению нужно разрешение пользователя на прием звонков. Запросите его с помощью requestCallPermission(). Если пользователь откажет, приложение будет игнорировать входящие VoIP-звонки.

pushwoosh.requestCallPermission();

5. Установите пользовательский рингтон (необязательно)

Anchor link to

Плагин инициализирует VoIP автоматически. Чтобы воспроизводить пользовательский рингтон для входящих звонков, передайте имя звукового файла из бандла приложения:

pushwoosh.setRingtone("incoming.caf");

6. Доступные колбэки и методы VoIP

Anchor link to

Поддержка видео и формат идентификатора звонящего задаются для каждого звонка в полезной нагрузке VoIP push-уведомления: video и, на iOS, handleType (1 — общий, 2 — номер телефона, 3 — email).

Плагин Cordova поддерживает следующие методы и события, связанные с VoIP:

  • answer – вызывается, когда пользователь отвечает на входящий звонок
  • endCall – вызывается, когда пользователь завершает текущий звонок
  • hangup – вызывается, когда звонок сбрасывается
  • reject – вызывается, когда входящий звонок отклоняется
  • muted – переключает статус беззвучного режима, только для iOS
  • held – переключает статус удержания, только для iOS
  • voipPushPayload – возвращает полезную нагрузку push-уведомления для входящего VoIP-звонка
  • incomingCallSuccess – вызывается, когда системный UI звонка успешно отображен, только для iOS
  • incomingCallFailure – вызывается, когда системный UI звонка не удалось отобразить, только для iOS
  • speakerOn – включить громкую связь
  • speakerOff – выключить громкую связь
  • playDTMF – воспроизвести DTMF-сигнал во время звонка, только для iOS
  • voipDidRegisterTokenSuccessfully – вызывается, когда VoIP-токен зарегистрирован в Pushwoosh, только для iOS
  • voipDidFailToRegisterTokenWithError – вызывается, когда регистрация VoIP-токена не удалась, только для iOS
  • voipDidCancelCall – вызывается, когда звонок отменен удаленно через VoIP push-уведомление
  • voipDidFailToCancelCall – вызывается, когда попытка отменить звонок не удалась

Их можно подключить с помощью объекта PushNotification в Cordova, что позволит вам контролировать и реагировать на изменения состояния VoIP-звонка.

На Android эти события также можно обрабатывать в собственном нативном Java-классе, например чтобы открывать свой экран звонка, когда пользователь отвечает. См. Собственный обработчик событий звонков на Android.

Связанные ссылки

Anchor link to