Informatie doorgeven aan een vertrouwde webactiviteit met behulp van queryparameters

Wanneer ze Trusted Web Activity in hun applicaties gebruiken, moeten ontwikkelaars mogelijk informatie van het oorspronkelijke deel van de applicatie doorgeven aan de Progressive Web App (PWA).

Een veelvoorkomend gebruik hiervoor is het implementeren van aangepaste analysesegmentaties om installaties en sessies te meten die zijn gestart vanuit de vertrouwde webactiviteit. Om dit te implementeren kunnen queryparameters aan de start-URL worden toegevoegd.

De start-URL wijzigen

Als de parameter die wordt doorgegeven aan de PWA hetzelfde blijft voor alle gebruikers en lanceringen, kan de parameter rechtstreeks aan de start-URL worden toegevoegd. Een voorbeeld van dit gebruik is wanneer ontwikkelaars het aantal navigatiesessies willen meten dat is gemaakt op basis van een vertrouwde webactiviteit.

Met behulp van bubbeltjesplastic

Bubblewrap is een tool die is gemaakt om ontwikkelaars te helpen bij het maken van een project voor een Android-applicatie die bestaande PWA's lanceert met behulp van een vertrouwde webactiviteit. Het bevat zowel een bibliotheek als een Command Line Interface (CLI) .

Een nieuw project aanmaken

Wanneer u de Bubblewrap CLI gebruikt, wordt een project geïnitialiseerd met de opdracht init en worden standaardwaarden gemaakt op basis van een webmanifest, opgegeven als parameter:

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

De wizard gebruikt standaard de start_url uit het webmanifest en vraagt ​​gebruikers om de waarde te bevestigen, waardoor ontwikkelaars de kans krijgen om extra parameters toe te voegen aan de url die wordt gebruikt om de Progressive Web App te starten.

De Bubblewrap CLI-uitvoer wordt weergegeven

Een bestaand project aanpassen

Wanneer Bubblewrap een project genereert, wordt informatie voor dat specifieke project opgeslagen in een bestand met de naam twa-manifest.json in de projectmap. Om de start-URL voor een bestaand project te wijzigen, moeten ontwikkelaars het bestand wijzigen:

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

Genereer vervolgens de projectbestanden opnieuw en pas de nieuwe start-URL toe

bubblewrap update

Met behulp van Android Studio

Wanneer u Android Studio en de standaard LauncherActivity gebruikt, wordt de startUrl gedefinieerd als een metatag in AndroidManifest.xml, en we kunnen de URL die wordt gebruikt om de vertrouwde webactiviteit te starten wijzigen door deze te wijzigen:

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

De start-URL dynamisch wijzigen

In andere gevallen willen ontwikkelaars mogelijk parameters maken die bijvoorbeeld tussen gebruikers of sessies veranderen. In de meeste gevallen gaat het hierbij om het verzamelen van details van de Android-kant van de applicatie om deze door te geven aan de Progressive Web App.

Stap 1: Maak een aangepaste 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();
    }
}

Stap 2: Pas AndroidManifest.xml aan om de aangepaste LauncherActivity te gebruiken

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

Conclusie

Het doorgeven van informatie van het oorspronkelijke gedeelte naar het webgedeelte van een applicatie kan worden bereikt door gebruik te maken van queryparameters. Wanneer een parameter aan de queryreeks wordt toegevoegd, is deze toegankelijk voor scripts die op de pagina worden uitgevoerd en kan deze ook deel uitmaken van de verwijzing wanneer gebruikers naar een andere pagina navigeren of de ontwikkelaar een deelactie implementeert.

Ontwikkelaars moeten zich bewust zijn van deze implicaties en kunnen deze beperken door link rel=noreferrer te gebruiken of de URL op te schonen met behulp van de paginalocatie-API .

Het Trusted Web Activity-protocol biedt momenteel geen mechanisme om berichten uit te wisselen met het systeemeigen deel van de applicatie nadat het webonderdeel is aangeroepen.

Wij zijn van mening dat bestaande of toekomstige webplatform-API's de meeste gebruiksscenario's mogelijk maken die ontwikkelaars nodig hebben. Als u op zoek bent naar nieuwe of aankomende web-API's, bekijk dan de statuspagina Nieuwe mogelijkheden .