vk-bridge icon indicating copy to clipboard operation
vk-bridge copied to clipboard

события CallLeft и CallFinished

Open goodwin74 opened this issue 1 year ago • 8 comments

Когда запускаешь звонок через приложение при помощи VKWebAppCallStart и VKWebAppCallJoin и выходишь из приложения с запущенным звонком и снова заходишь, если приложение уже перезапустилось, а не загрузилось из кеша, то события CallLeft и CallFinished уже не приходят в сервис. Таким образом при желании показывать статус звонка уже не получается, так как при загрузке статус запросить через CallGetStatus можно, но отследить когда он завершится уже не получится.

goodwin74 avatar Oct 17 '23 05:10 goodwin74

Информация о том как действовать в этом случае находится в документации в разделе «Интеграция звонков - Как реализовать»

Когда пользователь возвращается в мини-приложение, платформа ВКонтакте отправляет мини-приложению событие VKWebAppViewRestore. Рекомендуем вызывать VKWebAppCallGetStatus и проверять статус звонка в обработчике VKWebAppViewRestore, так как за время отсутствия пользователя звонок мог быть завершён.

kravetsone avatar Nov 26 '23 10:11 kravetsone

Информация о том как действовать в этом случае находится в документации в разделе «Интеграция звонков - Как реализовать»

Когда пользователь возвращается в мини-приложение, платформа ВКонтакте отправляет мини-приложению событие VKWebAppViewRestore. Рекомендуем вызывать VKWebAppCallGetStatus и проверять статус звонка в обработчике VKWebAppViewRestore, так как за время отсутствия пользователя звонок мог быть завершён.

Проблема в том, что звонок не завершен, а сервис его уже не отслеживает после описанных выше действий и при прекращении звонка с открытом сервисом не вызываются события CallLeft и CallFinished.

goodwin74 avatar Nov 26 '23 19:11 goodwin74

по поводу VKWebAppViewRestore кстати он срабатывает еще и во время выхода из звонка, однако на момент открытия меню выбора "Выйти из звонка" или "Завершить звонок для всех", пользователь нажал выйти из звонка и окно свернулось сделав активным опять сервис, но никаких больше событий не вызывается, и только если свернув и развернув сервис is_active становится false и сервис может понять что звонок завершен. Возможно тут нужно тогда сделать чтобы VKWebAppViewRestore сработал после закрытия меню когда пользователь нажал на "Выйти из звонка" или "Завершить звонок для всех", или отменил действие. Ну или чтобы сработало CallLeft или CallFinished при нажатии соответствующей кнопки.

goodwin74 avatar Nov 26 '23 20:11 goodwin74

Т.е. после выхода из сервиса с запущенным звонком и у сервиса сбрасывается кеш, то пользователь заходя в сервис снова с тем же звонком активным, получает в CallGetStatus is_active true как и должно быть, но если далее выйти из звонка прям в сервисе то нет ни какого события, которое бы сказало сервису что звонок завершен. Только при повторном сворачивании сервиса, когда срабатывает Restore опираясь на CallGetStatus сервис понимает что теперь звонок не активен, хотя фактически он бы завершен еще до сворачивания сервиса.

goodwin74 avatar Nov 26 '23 20:11 goodwin74

Спасибо за обращение, передал команде.

Pronin-vk avatar Feb 09 '24 09:02 Pronin-vk

@goodwin74 Подскажите, пожалуйста, платформу, на которой у вас возникает проблема

xpyctumo avatar Mar 05 '24 16:03 xpyctumo

@goodwin74 Подскажите, пожалуйста, платформу, на которой у вас возникает проблема

Проверял на Android и m.vk.com

goodwin74 avatar Mar 05 '24 19:03 goodwin74

Добрый день, проверьте сейчас, пожалуйста. @goodwin74

Pronin-vk avatar Jun 08 '24 08:06 Pronin-vk