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

Перенос серверной логики определения webview из коров + добавление кук #29

Closed
wants to merge 8 commits into from

Conversation

andreitakarski
Copy link
Collaborator

  • В b2n перенесено все в папку client;
  • Перенесена вся логика из папки extract-alfa-mobile-webview-params в корах в папку server;
  • Добавлена кука с параметрами вебвью
  • Добавлена проверка куки при определении вебвью окружения

puptup
puptup previously approved these changes Nov 12, 2024
evgen-kent
evgen-kent previously approved these changes Nov 14, 2024
Copy link
Collaborator

@vahrammer vahrammer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Привет.

  • Нужно добавить README.md с инструкциями для партнёров;
  • Нужно всё упростить на сервере:
    • Если кука уже есть – значит это вебвью окружение, информация об АМ уже там. Можно ничего не делать;
    • Если куки нет:
      • чекнуть, вебвью ли?
      • для вебвью, записать в куку инфу о нативном приложении.

Всякие особенности нашего веб-приложения (Capsule, Voskhod) здесь не нужны.

Наверно, было бы круто, на клиенте добавить утилитку, которая сама будет парсить куку, создавать экземпляр b2native и возвращать его.

BTW: В комментарий к Задаче, докинул ссылку на обновленную серверную логику в нашем веб-приложении.

src/server/index.ts Outdated Show resolved Hide resolved
src/server/detect-and-extract-native-params.ts Outdated Show resolved Hide resolved
src/server/constants.ts Outdated Show resolved Hide resolved
src/server/detect-and-extract-native-params.ts Outdated Show resolved Hide resolved
@andreitakarski andreitakarski dismissed stale reviews from evgen-kent and puptup via aaffe4d November 28, 2024 14:44
Copy link
Collaborator

@vahrammer vahrammer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Привет.
Глянь ещё комментики, пожалуйста 😇

Всё не успел посмотреть, хочу в течение дня досмотреть...

src/server/constants.ts Outdated Show resolved Hide resolved
README.md Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Show resolved Hide resolved
src/server/types.ts Outdated Show resolved Hide resolved
src/server/types.ts Outdated Show resolved Hide resolved
src/server/types.ts Outdated Show resolved Hide resolved
Copy link
Collaborator

@vahrammer vahrammer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Привет.

Предлагаю следующие изменения к этому ПР → https://github.com/core-ds/bridge-to-native/tree/feat/NEWCLICKUI-3942_suggestions (можно зачерипикать коммиты, если нет замечаний).

Там 👆 пока только к серверной части изменения, по фронту есть вопросы по существующей реализации. Надо отдельно разбираться.

Мотивация по изменениям.

  • Мы должны эту либу делать универсальной – подходящей для любого партнера, не затаскивая сюда сущности из нашего веб-приложения (что за blankPagePath?);
  • Мы должны сделать её как можно более легкой в использовании, максимально инкапсулируя детали реализиции вебвью-модуля нативного приложения (зачем в index экспорт внутренних методов?).

Что сделано

В server теперь только две функции в index:

  • isWebviewEnvironment– чтобы партнер мог узнать, пришел запрос из вебвью нашего нативного приложения или нет;
  • storeNativeParamsForClientIfWebview – чтобы партнёр мог просто вызвать эту функцию, и за него все само распарсилось и записалось в куку.

Все, о чем он должен знать – это интерфейс этих двух функций.

Что ещё нужно сделать

  • Автоматически читать куку при инициализации b2native на клиенте (убрать nativeParams вообще);
  • Убрать все специфичные для нашего веб-приложения фичи (типа blankPage, handleRedirect и пр.).

В ближайшее время постараюсь предложить изменения на клиенте, но не уверен, что успею завтра.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants