Trasferimento di informazioni a un'attività web attendibile utilizzando i parametri di ricerca

Quando l'Attività web attendibile nelle proprie applicazioni viene utilizzata, gli sviluppatori potrebbero dover trasferire le informazioni dalla parte nativa dell'applicazione all'app web progressiva (PWA).

Un caso d'uso comune è l'implementazione di segmentazioni personalizzate di dati e analisi per misurare le installazioni e le sessioni avviate dall'attività web attendibile. Per implementare questa funzionalità, puoi aggiungere i parametri di query all'URL di lancio.

Modifica dell'URL di inizio

Se il parametro trasmesso alla PWA rimane lo stesso per tutti gli utenti e i lanci, può essere aggiunto direttamente all'URL di lancio. Un esempio di questo utilizzo è quando gli sviluppatori vogliono misurare il numero di sessioni di navigazione create da un'attività web attendibile.

Utilizzo del pluriball

Bubblewrap è uno strumento creato per aiutare gli sviluppatori a creare un progetto per un'applicazione Android che avvia una PWA esistente utilizzando un'attività web attendibile. Contiene sia una libreria sia un'interfaccia a riga di comando (CLI).

Creazione di un nuovo progetto

Quando utilizzi l'interfaccia a riga di comando Bubblewrap, un progetto viene inizializzato con il comando init e crea valori predefiniti da un manifest web, fornito come parametro:

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

La procedura guidata utilizzerà il valore start_url del manifest web come predefinito e chiederà agli utenti di confermare il valore, dando agli sviluppatori la possibilità di aggiungere parametri aggiuntivi all'URL utilizzato per avviare l'app web progressiva.

Visualizzazione dell'output dell'interfaccia a riga di comando Bubble wrap

Modificare un progetto esistente

Quando Bubblewrap genera un progetto, le relative informazioni vengono archiviate in un file denominato twa-manifest.json, nella cartella del progetto. Per modificare l'URL di avvio per il progetto esistente, gli sviluppatori devono modificare il file:

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

Poi, rigenera i file di progetto e applica il nuovo URL di inizio

bubblewrap update

Con Android Studio

Se utilizzi Android Studio e l'ambiente LauncherActivity predefinito, startUrl è definito come un meta tag all'interno di AndroidManifest.xml e possiamo cambiare l'URL utilizzato per avviare l'attività web attendibile modificandolo:

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

Modifica dinamica dell'URL di inizio

In altri casi, ad esempio, gli sviluppatori potrebbero voler creare parametri che cambiano tra utenti o sessioni. Nella maggior parte dei casi, questa operazione comporterà la raccolta di dettagli dal lato Android dell'applicazione per trasmetterla all'app web progressiva.

Passaggio 1: crea una LauncherActivity personalizzata

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

Passaggio 2: modifica AndroidManifest.xml in modo che utilizzi Avvio attività personalizzata

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

Conclusione

Puoi passare informazioni dalla parte nativa alla parte web di un'applicazione utilizzando i parametri di query. Quando un parametro viene aggiunto alla stringa di query, sarà accessibile agli script in esecuzione sulla pagina e può anche far parte del referral quando gli utenti passano a una pagina diversa o lo sviluppatore implementa un'azione di condivisione.

Gli sviluppatori devono essere a conoscenza di queste implicazioni e possono ridurle utilizzando link rel=noreferrer o ripulire l'URL utilizzando l'API page location.

Il protocollo Attività web attendibile al momento non fornisce un meccanismo per lo scambio di messaggi con la parte nativa dell'applicazione dopo la chiamata della parte web.

Riteniamo che le API Web Platform esistenti o future consentano la maggior parte dei casi d'uso richiesti dagli sviluppatori. Se stai cercando API web nuove o future, consulta la pagina dello stato Nuove funzionalità.