Передача информации доверенному веб-действию с использованием параметров запроса

Андре Сиприани Бандарра
André Cipriani Bandarra

При использовании доверенной веб-активности в своих приложениях разработчикам может потребоваться передать информацию из собственной части приложения в Progressive Web App (PWA).

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

Изменение начального URL-адреса

Если параметр, передаваемый в PWA, останется одинаковым для всех пользователей и запусков, его можно добавить непосредственно к URL-адресу запуска. Примером такого использования является случай, когда разработчики хотят измерить количество сеансов навигации, созданных на основе доверенной веб-активности.

Использование пузырьковой пленки

Bubblewrap — это инструмент, созданный, чтобы помочь разработчикам создать проект для приложения Android, который запускает существующие PWA с помощью доверенной веб-активности. Он содержит как библиотеку , так и интерфейс командной строки (CLI) .

Создание нового проекта

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

bubblewrap init --manifest https://material.money/manifest.json

Мастер будет использовать start_url из веб-манифеста по умолчанию и попросит пользователей подтвердить значение, давая разработчикам возможность добавлять дополнительные параметры к URL-адресу, используемому для запуска Progressive Web App.

Показ вывода интерфейса командной строки Bubblewrap

Изменение существующего проекта

Когда Bubblewrap создает проект, информация об этом конкретном проекте сохраняется в файле twa-manifest.json в папке проекта. Чтобы изменить начальный URL-адрес существующего проекта, разработчикам необходимо изменить файл:

{
  ...
  "startUrl": "/?utm_source=trusted-web-activity",
  ...
}

Затем заново создайте файлы проекта и примените новый начальный URL-адрес.

bubblewrap update

Использование Android-студии

При использовании Android Studio и LauncherActivity по умолчанию startUrl определяется как метатег внутри AndroidManifest.xml, и мы можем изменить URL-адрес, используемый для запуска доверенной веб-активности, изменив его:

<activity android:name="com.google.androidbrowserhelper.trusted.LauncherActivity"
    android:label="@string/app_name">
    ...
    <meta-data android:name="android.support.customtabs.trusted.DEFAULT_URL"
        android:value="https://svgomg.firebaseapp.com/?utm_source=trusted-web-activity" />
    ...
</activity>

Динамическое изменение начального URL-адреса

В других случаях разработчики могут захотеть создать параметры, которые изменяются, например, в зависимости от пользователя или сеанса. В большинстве случаев это потребует сбора данных со стороны приложения Android для передачи их в Progressive Web App.

Шаг 1. Создайте собственный LauncherActivity.

public class CustomQueryStringLauncherActivity extends LauncherActivity {
    private String getDynamicParameterValue() {
        return String.valueOf((int)(Math.random() * 1000));
    }

    @Override
    protected Uri getLaunchingUrl() {
        // Get the original launch Url.
        Uri uri = super.getLaunchingUrl();

        // Get the value we want to use for the parameter value
        String customParameterValue = getDynamicParameterValue();

        // Append the extra parameter to the launch Url
        return uri
                .buildUpon()
                .appendQueryParameter("my_parameter", customParameterValue)
                .build();
    }
}

Шаг 2. Измените AndroidManifest.xml , чтобы использовать пользовательский LauncherActivity.

<activity android:name="com.myapp.CustomQueryStringLauncherActivity"
    android:label="@string/app_name">
    ...
    <meta-data android:name="android.support.customtabs.trusted.DEFAULT_URL"
        android:value="https://squoosh.app/?utm_source=trusted-web-activity" />
    ...
</activity>

Заключение

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

Разработчики должны знать об этих последствиях и могут их смягчить, используя ссылку rel=noreferrer или очистив URL-адрес с помощью API определения местоположения страницы .

Протокол доверенных веб-действий в настоящее время не предоставляет механизм обмена сообщениями с собственной частью приложения после вызова веб-части.

Мы считаем, что существующие или будущие API-интерфейсы веб-платформы позволяют реализовать большинство сценариев использования, необходимых разработчик��м. Если вы ищете новые или будущие веб-API, посетите страницу статуса новых возможностей .