Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Нет возможности определить верный url приложения. #308

Open
ghost opened this issue Jan 4, 2024 · 3 comments
Labels
enhancement New feature or request

Comments

@ghost
Copy link

ghost commented Jan 4, 2024

Внимание:
Создаю ишу первый раз в жизни, спасибо за внимание.

Суть проблемы:
Собираю SSR приложение на React + Express. На локальном хосте и используя ссылку vk-tunnel, получаю желаемый результат, а именно в Request приходят верные параметры относящиеся к url, соответственно при обновлении страницы приложения с открытым адресом "/page/1", пользователь получит соответствующую отрендеренную на сервере html. Но, открыв приложение через vk.com, в запрос поступают данные запуска формата:

vk_access_token_settings: х
vk_app_id: 00000
vk_are_notifications_enabled: 0
vk_experiment: 000000
vk_is_app_user: 1
vk_is_favorite: 0
vk_language: ru
vk_platform: mobile_web
vk_ref: other
vk_ts: 00000
vk_user_id: 00000
sign: 0000000

! без намека на url !

Комментарий:
Да, в документации (https://vkcom.github.io/VKUI/#/Adaptivity) в разделе "Адаптивность через JS" описано решение для ssr через маунт, но я не особо тогда понимаю смысл SSR для рендеринга обертки до App
Также для получения действительно SSR вижу костыль в виде отправки пустого html со скриптом, который получит window.location, отправит его на мой сервер, а сервер отдаст рендер html нужной страницы.

Не исключаю вариант, что я просто что-то не понял, буду рад обратной связи от команды и опытных разработчиков.

Желаемый результат:
ВК отправляет данные запуска с информацией об открытом у пользователя url. Поведение vk-tunnel соответствует поведению vk.com

Описал ситуацию как смог, готов ответить на вопросы и прикрепить дополнительную информацию при необходимости.

@ghost
Copy link
Author

ghost commented Jan 4, 2024

Я так пониамю, что параметры запуска отдаются этим кодом: packages/core/src/parseURLSearchParamsForGetLaunchParams.ts

Может имеет смысл добавить туда обработку window.location?

@nshvyryaev
Copy link
Contributor

Здравствуйте!

Сейчас путь передается в приложение через hash часть URL. Эта информация не оправляется на бэкенд, поэтому при работе на vk.com не попадает в SSR. Мы рассмотрим с командой альтернативные возможности и дадим вам знать.

Предложенное Вами решение с отправкой скрипта и последующим запросом страницы, отрендеренной на бэкенде должно сработать, однако сходу не понятно, какую проблему оно решает. Если так приложение будет отрисовываться быстрее - оно полезно, если скорость не отличается значительно, можно делать рендеринг на клиентской стороне, в любом случае первый запрос не возвращает готовый HTML.

@ghost
Copy link
Author

ghost commented Jan 9, 2024

Добрый день! В данном случае вопрос возник при разработке приложения в котором пользователи потенциально захотят поделиться определенной страницей в приложении, соответственно SSR должен понимать, какую именно страницу отрисовать.

С одной стороны, моя задача - максимально быстрая доставка первого экрана, с другой стороны отрисовать верную страницу. По моим наблюдениям и в моих условиях, SSR в мини апс дает свой результат.

Было бы здорово получать роут напрямую от ВК.
Буду рад, если мое предложение найдет место и будет полезно Мини Апсам.

@pasha-nikitin-2003 pasha-nikitin-2003 added the enhancement New feature or request label Jun 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants