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

VoIP-звонки в Cordova

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

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 CocoaPod

Anchor link to

Убедитесь, что pod PushwooshVoIP автоматически подключается через плагин. При необходимости проверьте это вручную в вашем Podfile:

pod 'PushwooshVoIP'

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

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

Anchor link to

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

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

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

4. Настройте код VoIP-приложения (если используются и VoIP, и обычные push-уведомления)

Anchor link to

Если ваше приложение использует как стандартные, так и VoIP push-уведомления, вы должны явно установить код VoIP-приложения перед инициализацией VoIP:

pushwoosh.setVoipAppCode("XXXXX-XXXXX");

Замените "XXXXX-XXXXX" на код приложения Pushwoosh, назначенный вашему приложению с поддержкой VoIP в панели управления Pushwoosh.

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

Anchor link to

На Android вам необходимо запросить у пользователя разрешение на прием звонков. Для этого вызовите метод requestCallPermission(). Это следует сделать перед регистрацией устройства.

pushwoosh.requestCallPermission();

6. Инициализируйте параметры VoIP

Anchor link to

Вызовите следующий метод для инициализации функциональности VoIP:

PushNotification.prototype.initializeVoIPParameters = function(supportsVideo, ringtoneSound, handleTypes, success, error) {
if (typeof handleTypes === "function") {
error = ringtoneSound;
success = supportsVideo;
handleTypes = undefined;
ringtoneSound = undefined;
supportsVideo = undefined;
}
exec(success, error, "PushNotification", "initializeVoIPParameters", [
!!supportsVideo,
ringtoneSound || "",
handleTypes != null ? Number(handleTypes) : 1
]);
};

Параметры

Anchor link to
  • supportsVideotrue или false в зависимости от того, поддерживает ли ваше приложение видеозвонки
  • ringtoneSound – имя файла пользовательского рингтона (например, "incoming.caf"), или пустая строка для рингтона по умолчанию
  • handleTypes – числовая битовая маска для типов идентификаторов звонка (1 для номера телефона, 2 для email и т.д.)

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

Anchor link to

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

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

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

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

Anchor link to