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

애플리케이션에서 신뢰할 수 있는 웹 활동을 사용할 때 개발자는 애플리케이션의 네이티브 부분에서 프로그레시브 웹 앱 (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를 찾고 있다면 새로운 기능 상태 페이지를 확인하세요.