VoIP-звонки в Cordova
Pushwoosh поддерживает уведомления о звонках в стиле VoIP для iOS и Android с помощью плагина pushwoosh-cordova-plugin. Это позволяет использовать нативную функциональность VoIP-звонков, включая UI входящего звонка и события управления звонками.
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 CocoaPod
Anchor link toУбедитесь, что pod PushwooshVoIP автоматически подключается через плагин. При необходимости проверьте это вручную в вашем Podfile:
pod 'PushwooshVoIP'Этот pod необходим для поддержки VoIP-уведомлений на основе PushKit и обработки звонков на системном уровне.
3. Включите фоновый режим VoIP в Xcode
Anchor link toОткройте ваш проект в Xcode и выполните следующие шаги:
- Перейдите в Signing & Capabilities.
- Добавьте возможность Background Modes.
- Отметьте опцию 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 tosupportsVideo–trueилиfalseв зависимости от того, поддерживает ли ваше приложение видеозвонкиringtoneSound– имя файла пользовательского рингтона (например,"incoming.caf"), или пустая строка для рингтона по умолчаниюhandleTypes– числовая битовая маска для типов идентификаторов звонка (1для номера телефона,2для email и т.д.)
7. Доступные колбэки и методы VoIP
Anchor link toПлагин Cordova поддерживает следующие методы и события, связанные с VoIP:
answer– вызывается, когда пользователь отвечает на входящий звонокendCall– вызывается, когда пользователь завершает текущий звонокhangup– вызывается, когда звонок сбрасываетсяreject– вызывается, когда входящий звонок отклоняетсяmuted– переключает статус беззвучного режима, только для iOSheld– переключает статус удержания, только для iOSvoipPushPayload– возвращает полезную нагрузку push-уведомления для входящего VoIP-звонкаincomingCallSuccess– вызывается, когда системный UI звонка успешно отображен, только для iOSincomingCallFailure– вызывается, когда системный UI звонка не удалось отобразить, только для iOSspeakerOn– включить громкую связьspeakerOff– выключить громкую связьplayDTMF– воспроизвести DTMF-сигнал во время звонка, только для iOS
Их можно подключить с помощью объекта PushNotification в Cordova, что позволит вам контролировать и реагировать на изменения состояния VoIP-звонка.