Доверенные веб-действия с несколькими источниками, Доверенные веб-действия с несколькими источниками

Доверенные веб-действия — это новый способ интеграции содержимого вашего веб-приложения, такого как PWA, с вашим приложением Android, используя протокол, основанный на пользовательских вкладках.

ff-навигация по началу

Для доверенной веб-активности необходимо, чтобы открываемые источники были проверены с помощью ссылок на цифровые активы , чтобы отображать контент в полноэкранном режиме.

Когда пользователь выходит из проверенного источника, отображается пользовательский интерфейс настраиваемой вкладки. Строка URL-адреса на вкладке «Пользовательские» сообщает пользователям, что они сейчас перемещаются в домене за пределами приложения, а также предоставляет пользователю кнопку X, которая позволяет ему быстро вернуться к проверенному источнику.

Но веб-приложения также часто создают возможности, охватывающие несколько источников. Примером может служить приложение для покупок, основной интерфейс которого находится на www.example.com , а поток оформления заказа размещается на checkout.example.com .

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

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

Настройка проверки для нескольких источников

Как и в случае с основным источником, проверка осуществляется через ссылки на цифровые активы, и каждый проверяемый домен должен иметь собственный файл assetslinks.json.

В нашем примере с www.example.com и checkout.example.com мы будем иметь:

  • https://www.example.com/.well-known/assetlinks.json
  • https://checkout.example.com/.well-known/assetlinks.json

Поскольку каждый домен подключается к одному и тому же приложению Android, файлы assetlinks.json выглядят одинаково.

Если предположить, что имя пакета для приложения Android — com.example.twa , оба файла assetlink.json будут содержать что-то похожее на следующее:

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
  "namespace": "android_app",
  "package_name": "com.example",
   "sha256_cert_fingerprints": ["..."]}
}]

Добавьте несколько источников в приложение Android

В приложении Android необходимо обновить объявление asset_statements , чтобы оно содержало все источники, которые необходимо проверить:

<string name="asset_statements">
[{
    \"relation\": [\"delegate_permission/common.handle_all_urls\"],
    \"target\": {
        \"namespace\": \"web\",
        \"site\": \"https://www.example.com\"
    }
}],
[{
    \"relation\": [\"delegate_permission/common.handle_all_urls\"],
    \"target\": {
        \"namespace\": \"web\",
        \"site\": \"https://checkout.example.com\"
    }
}],
</string>

Добавьте дополнительные источники в LauncherActivity.

Использование LauncherActivity по умолчанию

LauncherActivity , являющийся частью библиотеки поддержки android-browser-helper предоставляет возможность добавить несколько источников для проверки путем настройки проекта Android.

Сначала добавьте элемент string-array в файл res/values/strings.xml . Каждый дополнительный URL-адрес, подлежащий проверке, будет находиться внутри подэлемента item :

...
<string-array name="additional_trusted_origins">
    <item>https://www.google.com</item>
</string-array>
...

Затем добавьте новый тег meta-data внутри существующего элемента активности, который ссылается на LauncherActivity , внутри AndroidManifest.xml :

...
<activity android:name="com.google.androidbrowserhelper.trusted.LauncherActivity"
    android:label="@string/app_name">


    <meta-data
        android:name="android.support.customtabs.trusted.ADDITIONAL_TRUSTED_ORIGINS"
        android:resource="@array/additional_trusted_origins" />


    ...
</activity>
...

Использование пользовательской LauncherActivity

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

public void launcherWithMultipleOrigins(View view) {
  List<String> origins = Arrays.asList(
      "https://checkout.example.com/"
  );


  TrustedWebActivityIntentBuilder builder = new TrustedWebActivityIntentBuilder(LAUNCH_URI)
      .setAdditionalTrustedOrigins(origins);


  new TwaLauncher(this).launch(builder, null, null);
}

Заключение

Благодаря этим шагам доверенная веб-активность теперь готова поддерживать несколько источников. В android-browser-helper есть пример приложения для доверенных веб-действий с несколькими источниками. Обязательно проверьте это.

Поиск неисправностей

Настройка Digital Asset Links состоит из нескольких движущихся частей. Если приложение по-прежнему отображает панель пользовательских вкладок вверху, вероятно, что-то не так с конфигурацией.

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

Также имеется замечательный инструмент Peter's Asset Link Tool , который помогает отлаживать ссылки на цифровые активы в приложениях, установленных на устройстве.