Pull to refresh

Как открыть URL в нативном приложении

https://t.me/dolgo_polo_dev

Для этого есть 5 вариантов:
• WebView
• GeckoView
• CustomTabs
• TWA
• внешний браузер

WebView

Это обычная вьюшка, которая встраивается в вашу верстку

Плюсов много:
• можно контролировать каждый запрос (есть куча колбеков)
• можно передать любые куки и хедеры (в том числе токены пользователя, чтоб не заставлять пользователя заново авторизовываться)
• можно настроить JS Bridge (вызывать нативный код прямо с сайта)

GeckoView

Это аналог WebView от Firefox

Сам не использовал, ничего сказать не могу. Если кто пользовался, поделитесь опытом/эмоциями, пожалуйста)

CustomTab

CustomTab — это Activity браузера Chrome, открытое поверх вашего приложения в вашей Task-e

Из плюсов:
• в CustomTab доступен весь функционал браузера (кнопка "поделиться", поиск по странице...)
• общее с Chrome хранилище данных о юзере (если открыть ссылку, где юзер раньше авторизовывался, то он сразу окажется в своем аккаунте)

Минусы есть:
• нельзя встроить в верстку
• колбеков практически нет, настройки минимальные
• можно передать только определенные хедеры/куки
• нельзя вытащить куки обратно

TWA (Trusted Web Activities)

Обертка над CustomTab. Используется для связи PWA (progressive web app) и нативных возможностей приложения. Позволяет опубликовать PWA в Play Market.

Внешний браузер

Тут просто пуляем Intent с Intent.ACTION_VIEW в систему, а система уже находит приложение, которое этот URL может обработать. Из минусов — нет возможности передать/забрать хедеры/куки

@dolgo_polo_dev

Tags:
Total votes 5: ↑3 and ↓2+3
Comments0

Articles