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

André Cipriani Bandarra
André Cipriani Bandarra

Quando utilizzano l'Attività web attendibile nelle loro applicazioni, gli sviluppatori potrebbero dover trasmettere informazioni da: la parte nativa dell'applicazione nell'app web progressiva (PWA).

Un caso d'uso comune è l'implementazione di segmentazioni di analisi personalizzate per misurare le installazioni e sessioni avviate dall'Attività web attendibile. Puoi aggiungere parametri di query all'URL di avvio per implementare questa funzionalità.

Modifica dell'URL iniziale

Se il parametro trasmesso alla PWA rimarrà lo stesso per tutti gli utenti e avvia, il parametro può essere aggiunto direttamente all'URL di avvio. Un esempio di questo utilizzo è Quando gli sviluppatori vogliono misurare il numero di sessioni di navigazione create da un account web Attività.

Utilizzo della funzione pluriball

Bubble wrap è uno strumento creato per aiutare gli sviluppatori a creare un progetto per un Applicazione per Android che avvia PWA esistenti utilizzando un file web attendibile Attività. 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 di un file manifest web, forniti come parametro:

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

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

Visualizzazione dell'output dell'interfaccia a riga di comando Bubblewrap

Modifica di un progetto esistente

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

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

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

bubblewrap update

Utilizzo di Android Studio

Quando usi Android Studio e la funzionalità LauncherActivity predefinita, l'elemento startUrl è definito come meta tag all'interno di AndroidManifest.xml; inoltre, possiamo modificare l'URL utilizzato per avviare l'Attività web attendibile Modificarla:

<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, gli sviluppatori potrebbero voler creare parametri che cambino da un utente all'altro o da una sessione all'altra, ad esempio in esecuzione in un'istanza Compute Engine. Nella maggior parte dei casi, sarà necessario raccogliere dettagli dal lato Android della per trasmetterla all'app web progressiva.

Passaggio 1: crea un'attività 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 da usare l'attività LauncherActivity 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

È possibile trasferire le informazioni dalla parte nativa alla parte web di un'applicazione utilizzando parametri di ricerca. Quando un parametro viene aggiunto alla stringa di query, sarà accessibile agli script pubblicati sulla pagina e possono far parte del referral quando gli utenti visitano una pagina diversa oppure lo sviluppatore implementa un'azione di condivisione.

Gli sviluppatori devono essere consapevoli di queste implicazioni e poterle limitare utilizzando link rel=noreferrer o di pulizia dell'URL utilizzando l'API di posizione della pagina.

Il protocollo delle attività web attendibili attualmente non fornisce un meccanismo per scambiare messaggi con la parte nativa dell'applicazione dopo la chiamata alla parte web.

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