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ć informacji z części natywnej aplikacji do aplikacji internetowej (PWA).

Częstym zastosowaniem tego rozwiązania jest implementacja niestandardowych segmentacji Analytics w celu pomiaru instalacji i sesji rozpoczętych za pomocą zaufanej aktywności internetowej. Aby to zaimplementować, do adresu URL uruchamiania można dodać parametry zapytania.

Modyfikowanie początkowego adresu URL

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

Korzystanie z folii bąbelkowej

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 istniejącego projektu, 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

Jeśli używasz Android Studio i domyślnego LauncherActivity, parametr startUrl jest zdefiniowany jako metatag w pliku AndroidManifest.xml. Możesz zmienić adres URL używany do uruchamiania zaufanej aktywności internetowej, modyfikując go:

<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 zbieranie informacji po stronie aplikacji na Androida i przekazanie 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. Zmień 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.

Wierzymy, że istniejące lub nadchodzące interfejsy API platformy Web Platform umożliwią deweloperom większość przypadków użycia. Jeśli szukasz nowych lub nadchodzących interfejsów internetowych API, zapoznaj się ze stroną stanu nowych funkcji.