В миниаппе на нативном андроид-приложении VK не резолвится bridge.send('VKWebAppShare', ...), то есть при успешном шеринге ссылки промис не удовлетворяется, а при отказе от шеринга промис не отклоняется, то есть просто зависает, и управление не передаётся далее идущему коду. В то же время на десктопе и мобильном вебе ошибки нет. На нативном приложении VK на IOS не проверял
Версия vk-bridge
2.15.3
Платформа
Android
Браузер и версия
—
Шаги воспроизведения
Предусловие: миниапп открывается в нативном приложении VK на андроиде. Приложение версии 8.107.1 (25889), обновление от 1 декабря 2024 года
Сценарий с успешным шерингом:
Вызвать bridge.send('VKWebAppShare', ...)
В открывшейся модалке шеринга пошерить ссылку в какой-нибудь чат
Сценарий с отказом от шеринга:
Вызвать bridge.send('VKWebAppShare', ...)
Закрыть модалку шеринга
Ожидаемое поведение
Сценарий с успешным шерингом:
Управление передаётся в then-обработчик
Сценарий с отказом от шеринга:
Управление передаётся в catch-обработчик
Фактическое поведение
Сценарий с успешным шерингом:
Управление не передаётся в then-обработчик
Сценарий с отказом от шеринга:
Управление не передаётся в catch-обработчик
Скриншоты
Я подготовил тестовый миниапп, в котором разместил один экран и кнопку для шеринга. Результаты обработки вывожу в консоль. Код для обработки шеринга приложил ниже по тексту
Описание
В миниаппе на нативном андроид-приложении VK не резолвится bridge.send('VKWebAppShare', ...), то есть при успешном шеринге ссылки промис не удовлетворяется, а при отказе от шеринга промис не отклоняется, то есть просто зависает, и управление не передаётся далее идущему коду. В то же время на десктопе и мобильном вебе ошибки нет. На нативном приложении VK на IOS не проверял
Версия vk-bridge
2.15.3
Платформа
Android
Браузер и версия
—
Шаги воспроизведения
Предусловие: миниапп открывается в нативном приложении VK на андроиде. Приложение версии 8.107.1 (25889), обновление от 1 декабря 2024 года
Сценарий с успешным шерингом:
Сценарий с отказом от шеринга:
Ожидаемое поведение
Сценарий с успешным шерингом: Управление передаётся в then-обработчик
Сценарий с отказом от шеринга: Управление передаётся в catch-обработчик
Фактическое поведение
Сценарий с успешным шерингом: Управление не передаётся в then-обработчик
Сценарий с отказом от шеринга: Управление не передаётся в catch-обработчик
Скриншоты
Я подготовил тестовый миниапп, в котором разместил один экран и кнопку для шеринга. Результаты обработки вывожу в консоль. Код для обработки шеринга приложил ниже по тексту
На первом видео я пробую шерить ссылку на мобильном вебе: https://drive.google.com/file/d/1Dqak_VuxqxktzC25dAmOPvJJUKQIqTgD/view?usp=sharing . Можно увидеть, что и успешный шеринг, и отказ от шеринга приводят к логам в консоль, то есть промис резолвится
На втором видео я пробую шерить ссылку в нативном приложении VK: https://drive.google.com/file/d/1wRkgL0O31Ey_-sPuvOJMubITFAg0sPoZ/view?usp=sharing . Можно увидеть, что ни успешный шеринг, ни отказ от шеринга не приводят к логам в консоль, то есть промис не резолвится
Косвенно (я предполагаю) такую же проблему можно заметить и в приложении песочницы: https://vk.com/app6909581#VktXZWJBcHBTaGFyZUAlN0IlMjJsaW5rJTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZ2ay5jb20lMkZ2a2FwcHNkZXYlMjIlN0Q То есть на десктопе запросы остаются в истории запросов: https://drive.google.com/file/d/1Odflh0a1YEO5KTqxHpjkzyye7Jr164GU/view?usp=sharing В то же время на нативном андроиде запросов в истории запросов нет: https://drive.google.com/file/d/1O7U2URVgIFYbFWZM41mvob-OEPPBa5Wc/view?usp=sharing
Приложение
https://vk.com/app52790536 (приложение отключено, поэтому видно только админам; если потребуется, добавлю в администраторы)
Код, который вызвал ошибку
Код, обрабатывающий обращение к bridge: