vk-bridge
vk-bridge copied to clipboard
события CallLeft и CallFinished
Когда запускаешь звонок через приложение при помощи VKWebAppCallStart и VKWebAppCallJoin и выходишь из приложения с запущенным звонком и снова заходишь, если приложение уже перезапустилось, а не загрузилось из кеша, то события CallLeft и CallFinished уже не приходят в сервис. Таким образом при желании показывать статус звонка уже не получается, так как при загрузке статус запросить через CallGetStatus можно, но отследить когда он завершится уже не получится.
Информация о том как действовать в этом случае находится в документации в разделе «Интеграция звонков - Как реализовать»
Когда пользователь возвращается в мини-приложение, платформа ВКонтакте отправляет мини-приложению событие VKWebAppViewRestore. Рекомендуем вызывать VKWebAppCallGetStatus и проверять статус звонка в обработчике VKWebAppViewRestore, так как за время отсутствия пользователя звонок мог быть завершён.
Информация о том как действовать в этом случае находится в документации в разделе «Интеграция звонков - Как реализовать»
Когда пользователь возвращается в мини-приложение, платформа ВКонтакте отправляет мини-приложению событие VKWebAppViewRestore. Рекомендуем вызывать VKWebAppCallGetStatus и проверять статус звонка в обработчике VKWebAppViewRestore, так как за время отсутствия пользователя звонок мог быть завершён.
Проблема в том, что звонок не завершен, а сервис его уже не отслеживает после описанных выше действий и при прекращении звонка с открытом сервисом не вызываются события CallLeft и CallFinished.
по поводу VKWebAppViewRestore кстати он срабатывает еще и во время выхода из звонка, однако на момент открытия меню выбора "Выйти из звонка" или "Завершить звонок для всех", пользователь нажал выйти из звонка и окно свернулось сделав активным опять сервис, но никаких больше событий не вызывается, и только если свернув и развернув сервис is_active становится false и сервис может понять что звонок завершен. Возможно тут нужно тогда сделать чтобы VKWebAppViewRestore сработал после закрытия меню когда пользователь нажал на "Выйти из звонка" или "Завершить звонок для всех", или отменил действие. Ну или чтобы сработало CallLeft или CallFinished при нажатии соответствующей кнопки.
Т.е. после выхода из сервиса с запущенным звонком и у сервиса сбрасывается кеш, то пользователь заходя в сервис снова с тем же звонком активным, получает в CallGetStatus is_active true как и должно быть, но если далее выйти из звонка прям в сервисе то нет ни какого события, которое бы сказало сервису что звонок завершен. Только при повторном сворачивании сервиса, когда срабатывает Restore опираясь на CallGetStatus сервис понимает что теперь звонок не активен, хотя фактически он бы завершен еще до сворачивания сервиса.
Спасибо за обращение, передал команде.
@goodwin74 Подскажите, пожалуйста, платформу, на которой у вас возникает проблема
@goodwin74 Подскажите, пожалуйста, платформу, на которой у вас возникает проблема
Проверял на Android и m.vk.com
Добрый день, проверьте сейчас, пожалуйста. @goodwin74