Como transmitir informações para uma Atividade confiável na Web usando parâmetros de consulta

Ao usar a Atividade na Web Confiável nos aplicativos, os desenvolvedores podem precisar transmitir informações a parte nativa do aplicativo no Progressive Web App (PWA).

Um caso de uso comum para isso é implementar segmentações de análise personalizadas para medir as instalações e sessões iniciadas pela Atividade na Web Confiável. Os parâmetros de consulta podem ser adicionados ao URL de início para implementar isso.

Modificar o URL de início

Se o parâmetro transmitido para o PWA permanecer o mesmo para todos os usuários e for iniciado, o parâmetro poderá ser anexado diretamente ao URL de inicialização. Um exemplo desse uso é Quando os desenvolvedores querem medir o número de sessões de navegação criadas a partir de uma página da Web Atividade.

Como usar o plástico bolha

Bolha é uma ferramenta criada para ajudar os desenvolvedores a criar um projeto para uma Aplicativo para Android que inicia um PWA já existente usando um aplicativo Trusted Web Atividade. Ele contém uma biblioteca e uma interface de linha de comando (CLI).

Como criar um novo projeto

Ao usar a CLI Bubblewrap, um projeto é inicializado com o comando init e cria valores padrão de um manifesto da Web, fornecidos como parâmetro:

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

O assistente vai usar o start_url do manifesto da Web como padrão e pedir que os usuários confirmem o valor, oferecendo aos desenvolvedores a chance de adicionar parâmetros extras ao URL usado para iniciar o App Web Progressivo.

Como mostrar a saída da CLI do Bubblewrap

Como modificar um projeto atual

Quando o balão gera um projeto, as informações desse projeto específico são armazenadas em um arquivo chamado twa-manifest.json, na pasta do projeto. Para modificar o URL inicial de um projeto atual, os desenvolvedores precisam modificar o arquivo:

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

Em seguida, gere novamente os arquivos do projeto e aplique o novo URL de início

bubblewrap update

Usar o Android Studio

Ao usar o Android Studio e a LauncherActivity padrão, startUrl é definido como uma metatag no AndroidManifest.xml. Também podemos mudar o URL usado para iniciar a Atividade confiável na Web modificá-la:

<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>

Modificar o URL de início de forma dinâmica

Em outros casos, os desenvolvedores podem querer criar parâmetros que mudam entre usuários ou sessões, para instância. Na maioria dos casos, isso envolve a coleta de detalhes por parte do Android da para passá-lo ao Progressive Web App.

Etapa 1: criar uma LauncherActivity personalizada

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();
    }
}

Etapa 2: modificar o AndroidManifest.xml para usar a LauncherActivity personalizada

<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>

Conclusão

A transmissão de informações da parte nativa para a parte da Web de um aplicativo pode ser feita usando parâmetros de consulta. Quando um parâmetro é adicionado à string de consulta, ele fica acessível para scripts exibidos na página e também podem fazer parte da referência quando os usuários navegam para uma página diferente ou o desenvolvedor implementa uma ação de compartilhamento.

Os desenvolvedores precisam estar cientes dessas implicações e podem mitigá-las usando link rel=noreferrer ou limpe o URL usando a API Page Location.

No momento, o protocolo da Atividade na Web Confiável não fornece um mecanismo para trocar mensagens com a parte nativa do aplicativo depois que a parte da Web é invocada.

Acreditamos que as APIs Web Platform existentes ou futuras possibilitam a maioria dos casos de uso necessários para os desenvolvedores. Se estiver procurando APIs da Web novas ou futuras, confira a página de status de Novas capacidades.