쿼리 매개변수를 사용하여 신뢰할 수 있는 웹 액티비티에 정보 전달

애플리케이션에서 신뢰할 수 있는 웹 활동을 사용할 때 개발자는 애플리케이션의 네이티브 부분에서 프로그레시브 웹 앱 (PWA)으로 정보를 전달해야 할 수 있습니다.

이에 대한 일반적인 사용 사례는 신뢰할 수 있는 웹 활동에서 시작된 설치 및 세션을 측정하기 위해 맞춤 분석 세분화를 구현하는 것입니다. 이를 구현하려면 실행 URL에 쿼리 매개변수를 추가하면 됩니다.

시작 URL 수정

PWA에 전달되는 매개변수가 사용자와 실행 간에 동일하게 유지되는 경우 매개변수를 실행 URL에 직접 추가할 수 있습니다. 이러한 사용의 예는 개발자가 신뢰할 수 있는 웹 활동에서 생성된 탐색 세션 수를 측정하려는 경우입니다.

Bubblewrap 사용

Bubblewrap은 개발자가 신뢰할 수 있는 웹 활동을 사용하여 기존 PWA를 실행하는 Android 애플리케이션용 프로젝트를 만들 수 있도록 하는 도구입니다. 여기에는 라이브러리명령줄 인터페이스 (CLI)가 모두 포함되어 있습니다.

새 프로젝트 만들기

Bubblewrap CLI를 사용하면 프로젝트가 init 명령어로 초기화되고 매개변수로 제공된 웹 매니페스트에서 기본값을 만듭니다.

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

이 마법사는 웹 매니페스트의 start_url을 기본값으로 사용하고 사용자에게 값을 확인하도록 요청하므로 개발자는 프로그레시브 웹 앱을 시작하는 데 사용되는 URL에 추가 매개변수를 추가할 수 있습니다.

Bubblewrap CLI 출력 표시

기존 프로젝트 수정

Bubblewrap이 프로젝트를 생성하면 해당 프로젝트의 정보가 프로젝트 폴더의 twa-manifest.json 파일에 저장됩니다. 기존 프로젝트의 시작 URL을 수정하려면 개발자가 다음 파일을 수정해야 합니다.

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

그런 다음 프로젝트 파일을 다시 생성하고 새 시작 URL을 적용합니다.

bubblewrap update

Android Studio 사용

Android 스튜디오와 기본 LauncherActivity를 사용할 때 startUrl은 AndroidManifest.xml 내에서 메타 태그로 정의되며, 신뢰할 수 있는 웹 활동을 실행하는 데 사용되는 URL은 다음과 같이 수정하여 변경할 수 있습니다.

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

시작 URL 동적 수정

또는 개발자가 사용자 또는 세션 간에 변경되는 매개변수를 만들고 싶을 수도 있습니다. 대부분의 경우 애플리케이션의 Android 측에서 세부정보를 수집하여 프로그레시브 웹 앱에 전달합니다.

1단계: 맞춤 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();
    }
}

2단계: 맞춤 LauncherActivity를 사용하도록 AndroidManifest.xml 수정

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

결론

쿼리 매개변수를 사용하여 네이티브 부분에서 애플리케이션의 웹 부분으로 정보를 전달할 수 있습니다. 매개변수가 쿼리 문자열에 추가되면 페이지에서 실행되는 스크립트에서 액세스할 수 있으며 사용자가 다른 페이지로 이동하거나 개발자가 공유 작업을 구현할 때 추천의 일부가 될 수도 있습니다.

개발자는 이러한 영향을 인식해야 하며 link rel=noreferrer를 사용하거나 page location API를 사용하여 URL을 정리하여 이러한 영향을 완화할 수 있습니다.

신뢰할 수 있는 웹 활동 프로토콜은 현재 웹 부분이 호출된 후 애플리케이션의 네이티브 부분과 메시지를 교환하는 메커니즘을 제공하지 않습니다.

Google은 기존 또는 향후 출시될 웹 플랫폼 API를 통해 개발자에게 필요한 대부분의 사용 사례를 지원할 수 있다고 생각합니다. 신규 또는 예정된 웹 API를 찾고 있다면 새로운 기능 상태 페이지를 확인하세요.