VoIP-звонки в Cordova
Pushwoosh поддерживает уведомления о звонках в стиле VoIP для iOS и Android с помощью плагина pushwoosh-cordova-plugin. Это позволяет использовать нативную функциональность VoIP-звонков, включая UI входящего звонка и события управления звонками.
Перед началом интегрируйте плагин с Application Code вашего проекта Pushwoosh, как описано в руководстве по базовой интеграции.
1. Добавьте плагин Pushwoosh для Cordova с включенной поддержкой VoIP
Anchor link toУстановите плагин с включенным флагом VoIP:
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 и выполните следующие шаги:
- Перейдите в Signing & Capabilities.
- Добавьте возможность Background Modes.
- Отметьте опцию 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– переключает статус беззвучного режима, только для iOSheld– переключает статус удержания, только для iOSvoipPushPayload– возвращает полезную нагрузку push-уведомления для входящего VoIP-звонкаincomingCallSuccess– вызывается, когда системный UI звонка успешно отображен, только для iOSincomingCallFailure– вызывается, когда системный UI звонка не удалось отобразить, только для iOSspeakerOn– включить громкую связьspeakerOff– выключить громкую связьplayDTMF– воспроизвести DTMF-сигнал во время звонка, только для iOSvoipDidRegisterTokenSuccessfully– вызывается, когда VoIP-токен зарегистрирован в Pushwoosh, только для iOSvoipDidFailToRegisterTokenWithError– вызывается, когда регистрация VoIP-токена не удалась, только для iOSvoipDidCancelCall– вызывается, когда звонок отменен удаленно через VoIP push-уведомлениеvoipDidFailToCancelCall– вызывается, когда попытка отменить звонок не удалась
Их можно подключить с помощью объекта PushNotification в Cordova, что позволит вам контролировать и реагировать на изменения состояния VoIP-звонка.
На Android эти события также можно обрабатывать в собственном нативном Java-классе, например чтобы открывать свой экран звонка, когда пользователь отвечает. См. Собственный обработчик событий звонков на Android.