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

Gdy w swoich aplikacjach używają zaufanej aktywności internetowej, może być konieczne przekazywanie informacji z natywnej części aplikacji do progresywnej aplikacji internetowej (PWA).

Typowym przypadkiem użycia takiego rozwiązania jest stosowanie niestandardowych segmentów Analytics do pomiaru instalacji i sesji rozpoczętych w wyniku 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 u użytkowników i po uruchomieniu aplikacji, można go dołączyć bezpośrednio do adresu URL uruchomienia. Jest to możliwe np. wtedy, gdy deweloperzy chcą zmierzyć liczbę sesji nawigacji utworzonych na podstawie zaufanej aktywności internetowej.

Korzystanie z folii bąbelkowej

Bubblewrap to narzędzie ułatwiające programistom tworzenie projektu dla aplikacji na Androida, która uruchamia istniejące aplikacje PWA za pomocą zaufanej aktywności internetowej. Zawiera zarówno bibliotekę, jak i interfejs wiersza poleceń.

Tworzenie nowego projektu

W przypadku interfejsu wiersza poleceń Bubblewrap projekt jest inicjowany za pomocą polecenia init i tworzy wartości domyślne z pliku manifestu internetowego, podane jako parametr:

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

Kreator domyślnie użyje parametru start_url z pliku manifestu internetowego i poprosi użytkowników o potwierdzenie wartości. Dzięki temu deweloperzy będą mogli dodać dodatkowe parametry do adresu URL używanego do uruchamiania progresywnej aplikacji internetowej.

Wyświetlam dane wyjściowe interfejsu wiersza poleceń Bubblewrap

Modyfikowanie istniejącego projektu

Gdy Bubblewrap wygeneruje projekt, informacje o tym projekcie zostaną zapisane w pliku o nazwie twa-manifest.json w folderze projektu. Aby zmienić początkowy URL istniejącego projektu, deweloperzy muszą zmodyfikować plik:

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

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

bubblewrap update

W Android Studio

Gdy używasz Android Studio i domyślnego LauncherActivity, startUrl jest zdefiniowany jako metatag w pliku AndroidManifest.xml. Możemy zmienić URL służący do uruchamiania zaufanej aktywności internetowej:

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

Dynamiczna zmiana początkowego adresu URL

Deweloperzy mogą też tworzyć parametry, które zmieniają się w zależności od użytkownika lub sesji. W większości przypadków będzie to polegało na gromadzeniu informacji po stronie aplikacji na Androida w celu przekazania ich do progresywnej aplikacji internetowej.

Krok 1. Utwórz niestandardową aktywność 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ła niestandardowego 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 natywnej części do internetowej części aplikacji można uzyskać za pomocą parametrów zapytania. Po dodaniu parametru do ciągu zapytania będzie on dostępny dla skryptów działających na stronie. Może też być częścią odesłania, gdy użytkownicy przejdą na inną stronę lub deweloper wdroży działanie udostępniania.

Deweloperzy muszą mieć świadomość tych konsekwencji i mogą je ograniczyć za pomocą atrybutu link rel=noreferrer lub oczyszczania adresu URL za pomocą interfejsu page Location API.

Protokół Zaufanej aktywności internetowej nie zapewnia obecnie mechanizmu wymiany wiadomości z natywną częścią aplikacji po wywołaniu części internetowej.

Uważamy, że istniejące lub nadchodzące interfejsy API platformy Web Platform pozwalają deweloperom korzystać z większości przypadków użycia. Jeśli szukasz nowych lub nadchodzących interfejsów API, zajrzyj na stronę ze stanem nowych możliwości.