Przekazywanie informacji do zaufanej aktywności internetowej przy użyciu parametrów zapytania

Aby korzystać z treści zaufanych w internecie w swoich aplikacjach, deweloperzy mogą potrzebować przekazywania informacji z części natywnej aplikacji do aplikacji internetowej (PWA).

Typowym zastosowaniem jest wdrożenie niestandardowych segmentacji analitycznych w celu pomiaru instalacji i sesji rozpoczętych z poziomu zaufanej aktywności w internecie. Aby to zaimplementować, do adresu URL uruchamiania można dodać parametry zapytania.

Modyfikowanie początkowego adresu URL

Jeśli parametr przekazywany do PWA będzie taki sam dla wszystkich użytkowników i w przypadku wszystkich uruchamianych aplikacji, można go dołączyć bezpośrednio do adresu URL uruchamiania. Przykładem takiego użycia jest sytuacja, gdy deweloperzy chcą mierzyć liczbę sesji nawigacji utworzonych z działania zaufanej przeglądarki.

Korzystanie z Bubblewrap

Bubblewrap to narzędzie, które pomaga deweloperom tworzyć projekty aplikacji na Androida, które uruchamiają istniejące aplikacje PWA za pomocą zaufanej aktywności internetowej. Zawiera on bibliotekę i interfejs wiersza poleceń (CLI).

Tworzenie nowego projektu

Gdy używasz Bubblewrap CLI, projekt jest inicjowany za pomocą polecenia init i tworzy wartości domyślne z pliku manifestu internetowego, który jest podawany jako parametr:

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

Kreator użyje domyślnie adresu start_url z pliku Web Manifest i poprosi użytkowników o potwierdzenie tej wartości. Da to deweloperom możliwość dodania dodatkowych parametrów do adresu URL używanego do uruchamiania progresywnej aplikacji internetowej.

Wyświetlanie danych wyjściowych Bubblewrap w interfejsie wiersza poleceń

Modyfikowanie dotychczasowego projektu

Gdy Bubblewrap generuje projekt, informacje o tym projekcie są przechowywane w pliku o nazwie twa-manifest.json w folderze projektu. Aby zmodyfikować adres URL startowy w istniejącym projekcie, programiści muszą zmodyfikować plik:

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

Następnie ponownie wygeneruj pliki projektu i zastosuj nowy URL początkowy.

bubblewrap update

Korzystanie z Android Studio

Gdy używasz Android Studio i domyślnej klasy LauncherActivity, parametr startUrl jest zdefiniowany jako tag meta w pliku AndroidManifest.xml. Możesz zmienić adres URL używany do uruchamiania zaufanej aktywności internetowej, modyfikując go w ten sposób:

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

Modyfikowanie dynamicznie adresu URL początkowego

W innych przypadkach deweloperzy mogą chcieć utworzyć parametry, które zmieniają się w zależności od użytkowników lub sesji. W większości przypadków będzie to wymagało zebrania szczegółów z aplikacji na Androida i przekazania ich do progresywnej aplikacji internetowej.

Krok 1. Utwórz niestandardową klasę 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();
    }
}

Krok 2. Zmodyfikuj element AndroidManifest.xml, aby używać niestandardowej aktywności 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>

Podsumowanie

Przekazywanie informacji z części natywnej do części internetowej aplikacji jest możliwe za pomocą parametrów zapytania. Gdy parametr zostanie dodany do ciągu zapytania, będzie dostępny dla skryptów działających na stronie. Może też być częścią odesłania, gdy użytkownicy przechodzą na inną stronę lub gdy deweloper wdraża działanie udostępniania.

Deweloperzy muszą zdawać sobie sprawę z tych konsekwencji i mogą je ograniczyć, używając atrybutu link rel=noreferrer lub oczyszczając adres URL za pomocą interfejsu page location API.

Protokół Trusted Web Activity nie zapewnia obecnie mechanizmu wymiany wiadomości z rodzinną częścią aplikacji po wywołaniu części internetowej.

Uważamy, że istniejące lub nadchodzące interfejsy API Web Platform umożliwiają większość zastosowań potrzebnych deweloperom. Jeśli szukasz nowych lub nadchodzących interfejsów API sieci Web, zajrzyj na stronę z informacjami o nowych możliwościach.