TGViewer
mefody.dev mefody.dev @mefody_dev · 5.39K subscribers
Post #207 4.64K
Подводные камни In-app браузеров

Когда вы открываете ссылки в каких-нибудь нативных приложениях соц. сетей, они часто норовят открывать даже не WebView, а какую-то свою обёртку над WebView, которая имеет полный контроль над вашей страницей. Поль Эш-Лоран объясняет, почему такие обёртки — зло.

1. У них меньше функций, чем у браузеров. Просто потому, что операционные системы в принципе ограничивают WebView из соображений приватности и безопасности.

2. В In-app браузерах у вас вообще нет контроля над собственным кодом. Если какой-нибудь Cakebook решит вставить туда свой скрипт для «улучшения пользовательского опыта», то вы ничего с этим сделать не сможете.

3. Неконсистентный для пользователя UI/UX. Дизайнеры таких браузеров считают важным сделать что-то «удобнее оригинала», но забывают, что в основном пользователи сидят именно в обычных браузерах, поэтому там привычно. А сила привычки очень велика.

В 2022 году был скандал вокруг того, что Meta добавляет отдельный скрипт на каждую открываемую веб-страницу в своих приложениях, который отслеживает буквально каждое мельчайшее действие на странице. К сожалению, в 2023 году дело против Meta по этому кейсу было закрыто. TikTok делает так же. И не только они. Недавно Twitter/X зачем-то стал открывать страницы в первый раз в какой-то поделке, похожей на браузер, а во второй раз — в WebView.

Так и что с этим делать? Мы не контролируем собственные сайты?

В статье предлагается посмотреть на https://inappbrowser.com/ и https://inappdebugger.com/, которые помогают детектить, открывается сайт в обычном браузере или в In-app браузере. Плюс показывают код, который был внезапно вставлен на страницу извне.

Для Android можно использовать префикс intent: в ссылках. Так операционная система будет понимать, что вы хотите открыть именно дефолтный браузер в системе, а не In-app.

Также для любых ОС, если вы хотите сберечь пользовательские данные, можно задетектить, что страница открыта в In-app браузере, и вывести для пользователя инструкцию, как открыть страницу в нормальном браузере. Увы, требует дополнительной разработки, причём поди ещё угадай, какую инструкцию составить. Тот же Twitter очень дерзко в своём In-app браузере в принципе не даёт опции открыть в дефолтном браузере.

https://frontendmasters.com/blog/the-pitfalls-of-in-app-browsers/
blog.master.dev The Pitfalls of In-App Browsers You should know that in-app browser can and do literally inject JavaScript into the websites you visit with them with tracking scripts from the app you're inside of. And that's just one thing that sucks about them.
  • 👍 24
  • 😱 12
  • 🤯 5
  • ❤ 2
More from @mefody_dev
  1. Sep 25, 2026Эффект одометра Люблю такие демки, когда на чистом CSS делают что-то необычное, для чего я…
  2. Sep 23, 2026Цена ошибок гидрации В React есть много ухищрений, чтобы серверный кусок страницы обновилс…
  3. Sep 16, 2026Какие анимации более производительные: CSS или JS? Лучше пару раз увидеть, чем много откуд…
  4. Sep 14, 2026Единица измерения lh Если коротко, то 1lh = 1 line height. И это не размер шрифта, который…
  5. Sep 11, 2026<mermaid-element> Ещё одна полезная библиотека. Брамус собрал кастомный элемент, которому…
  6. Sep 10, 2026MicroLighter Дейв Руперт собрал маленькую библиотечку, которая делает подсветку кода. «Ещё…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →