При использовании Trusted Web Activity в своих приложениях разработчикам может потребоваться передать информацию из собственной части приложения в Progressive Web App (PWA).
Распространенным вариантом использования этого является реализация пользовательских аналитических сегментов для измерения установок и сеансов, запущенных из Trusted Web Activity. Для реализации этого можно добавить параметры запроса к URL-адресу запуска.
Изменение начального URL
Если параметр, передаваемый в PWA, останется тем же для всех пользователей и запусков, параметр можно добавить непосредственно к URL запуска. Примером такого использования является случай, когда разработчики хотят измерить количество сеансов навигации, созданных из Trusted Web Activity.
Использование пузырчатой пленки
Bubblewrap — это инструмент, созданный для помощи разработчикам в создании проекта для приложения Android, которое запускает существующий PWA с использованием Trusted Web Activity. Он содержит как библиотеку , так и интерфейс командной строки (CLI) .
Создание нового проекта
При использовании Bubblewrap CLI проект инициализируется с помощью команды init
и создает значения по умолчанию из веб-манифеста, предоставленного в качестве параметра:
bubblewrap init --manifest https://material.money/manifest.json
Мастер будет использовать start_url из веб-манифеста по умолчанию и попросит пользователей подтвердить значение, предоставляя разработчикам возможность добавить дополнительные параметры к URL-адресу, используемому для запуска Progressive Web App.
Изменение существующего проекта
Когда Bubblewrap генерирует проект, информация для этого конкретного проекта сохраняется в файле с именем twa-manifest.json
в папке проекта. Чтобы изменить начальный URL для существующего проекта, разработчикам необходимо изменить файл:
{ ... "startUrl": "/?utm_source=trusted-web-activity", ... }
Затем заново сгенерируйте файлы проекта и примените новый начальный URL.
bubblewrap update
Использование Android Studio
При использовании Android Studio и LauncherActivity по умолчанию startUrl определяется как метатег внутри AndroidManifest.xml, и мы можем изменить URL-адрес, используемый для запуска Trusted Web Activity, изменив его:
<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 определения местоположения страницы .
Протокол Trusted Web Activity в настоящее время не предоставляет механизм обмена сообщениями с собственной частью приложения после вызова веб-части.
Мы считаем, что существующие или будущие API веб-платформы обеспечивают большинство вариантов использования, необходимых разработчикам. Если вы ищете новые или будущие API веб-платформ, ознакомьтесь со страницей статуса New Capabilities .