Лежит в земле

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

Если вы новичок в Доверенных веб-действиях или просто ищете рекомендуемый набор инструментов, которые вам следует использовать сегодня, вот что вам нужно знать:

  • Bubblewrap : инструмент NodeJS, который позволяет разработчикам создавать APK-файлы Android, которые оборачивают существующий PWA. Созданное приложение работает на основе доверенных веб-действий, но это прозрачно для разработчика. Опыт разработки под Android не требуется. Чтобы начать, ознакомьтесь с документацией Bubblewrap .
  • android-browser-helper : библиотека Android, инкапсулирующая протокол доверенных веб-действий. Рекомендуется для разработчиков, которые знакомы с разработкой для Android и хотят использовать доверенные веб-действия в качестве одного из действий в своем приложении для Android или вносить настройки, которые не поддерживаются Bubblewrap. Чтобы начать работу с android-browser-helper, ознакомьтесь с документацией и нашими демонстрациями .

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

Обзор библиотек

Вот краткое описание каждой из библиотек, которые вы можете использовать в одном предложении:

  • androidx.browser — библиотека Android для взаимодействия с браузером, установленным на устройстве пользователя.
  • Android Browser Helper — библиотека, созданная на основе androidx.browser для клиентов доверенной веб-активности, предоставляющая удобные методы и разумные настройки по умолчанию.
  • Bubblewrap — инструмент для создания доверенных веб-действий из PWA, не затрагивая какой-либо Java-код.

Кроме того, каждая из этих библиотек/инструментов заменяет старую:

История

Библиотека поддержки Android

Библиотека поддержки Android расширяет платформу Android новыми API и функциями совместимости. Он разделен на несколько пакетов, при этом библиотека поддержки пользовательских вкладок содержит функции для взаимодействия с браузерами в системе пользователя. Разработка библиотеки поддержки пользовательских вкладок в основном велась в репозитории custom-tabs-client на GitHub, а изменения переносились обратно в библиотеку поддержки Android .

Пользовательская вкладка — это действие Android, которое использует браузер для отображения веб-страницы. Основное преимущество для разработчика заключается в том, что оно может быть тематическим и иметь кнопку закрытия, поэтому пользователь по-прежнему остается в приложении разработчика (вместо того, чтобы выходить из приложения и переходить к полному просмотру). Пользовательские вкладки, как API Android, могут поддерживаться любым браузером и использовать браузер пользователя по умолчанию (хотя разработчики могут переопределить это).

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

AndroidX

Библиотека поддержки Android позже была переименована в AndroidX , что само по себе является частью более масштабной программы по улучшению опыта разработчиков под названием JetPack . Таким образом, настраиваемые вкладки и доверенные веб-действия пришлось перенести из библиотеки поддержки настраиваемых вкладок в новый androidx.browser .

Часть кода, который мы написали в custom-tabs-client, подходила для библиотеки вспомогательных классов доверенных веб-активностей, но не для API Android. Код, отвечающий за проверку устаревших версий Chrome и предлагающий пользователю обновиться или принимающий решения о том, как следует хранить данные, не может быть перенесен в AndroidX. Поэтому мы создали альтернативную библиотеку, содержащую те части custom-tabs-client , которые не могли войти в androidx.browser , и так появился Android Browser Helper .

Помощник браузера Android был создан, чтобы содержать код, специфичный для браузеров (не только Chrome, мы открыты для кода специально для других браузеров) и может принимать конкретные решения, которые не должны делать библиотеки. Мы воспользовались этой возможностью, чтобы в целом разделить роли этих двух библиотек:

  • androidx.browser содержит основные строительные блоки для взаимодействия с браузерами в системе пользователя.
  • Помощник браузера Android содержит удобные в использовании и разумные реализации по умолчанию.

Начальная загрузка

Разработчики — занятые люди, у них много работы и сроки, которые нужно соблюдать. Чтобы помочь в этом, мы создали два инструмента, позволяющие пользователям запускать свою доверенную веб-активность.

Первый (и самый старый) — это svgomg-twa , который представляет собой проект Android, размещенный на GitHub и запускающий доверенную веб-активность. Первоначально он был задуман как демонстрационный проект, который превратился в шаблон. Пользователи могут клонировать этот репозиторий и изменить файл build.gradle , чтобы он указывал на их собственный веб-сайт, создать его и создать доверенное веб-действие, не затрагивая какой-либо Java-код. (Для проверки ссылок на цифровые активы требуется больше усилий, подробнее читайте здесь .)

svgomg-twa начинался в зависимости от custom-tabs-client, но затем перешел в помощник браузера Android (и транзитивно androidx.browser).

Новейший и самый блестящий инструмент — Bubblewrap , инструмент Node.js, который возьмет манифест вашего веб-приложения и сгенерирует для вас доверенную веб-активность. Это самый простой способ создать доверенную веб-активность на основе существующего PWA, не требующий каких-либо знаний в области разработки под Android.

Ближайшее будущее

Мы прекратим поддержку svgomg-twa по двум причинам:

  • Bubblewrap по сути генерирует заполненное svgomg-twa для разработчика. Он делает это в интерактивном режиме и может брать конфигурацию из манифеста веб-приложения (который, скорее всего, уже есть у PWA).
  • Если разработчикам нужна информация о том, как запустить собственный проект Trusted Web Activity с нуля, они могут просмотреть каталог демонстраций Android Browser Helpers.

Вместо этого новым разработчикам следует использовать Bubblewrap для создания своего проекта. Если вы уже используете svgomg-twa и внесли серьезные изменения, вы можете продолжать это делать, но обновлений вы не получите.

Мы планируем сделать Bubblewrap максимально эффективным, поэтому, если какая-то очевидная функция отсутствует или вы столкнулись с ошибкой, не стесняйтесь создавать проблему .