다중 출처 신뢰할 수 있는 웹 활동

신뢰할 수 있는 웹 활동은 PWA와 같은 웹 앱 콘텐츠를 맞춤 탭 기반의 프로토콜을 사용하는 Android 앱

ff-출처 탐색

신뢰할 수 있는 웹 활동은 열려 있는 출처를 다음을 사용하여 검증해야 합니다. 디지털 애셋 링크.

사용자가 검증된 출처를 벗어나면 맞춤 탭 UI가 표시됩니다. 맞춤설정 페이지의 URL 표시줄은 Tab 키를 사용하면 사용자가 현재 애플리케이션 외부의 도메인을 탐색하고 있음을 알리는 동시에 사용자에게 확인된 출처로 빠르게 돌아갈 수 있는 X 버튼 제공

하지만 웹 앱이 여러 출처를 아우르는 환경을 만드는 것도 일반적입니다. 쇼핑 애플리케이션은 www.example.com에서 기본 환경을 제공하는 쇼핑 애플리케이션이고, 결제는 checkout.example.com에서 호스팅됩니다.

이 경우 사용자가 뿐만 아니라 상단 표시줄 때문에 사용자가 애플리케이션을 떠났다고 생각할 수도 있기 때문입니다. 결제를 중단합니다

신뢰할 수 있는 웹 활동을 통해 개발자는 여러 출처를 검증할 수 있으며 사용자는 전체 화면으로 표시됩니다. 기본 도메인과 마찬가지로 개발자는 각 출처를 제어할 수 있습니다

여러 출처에 대한 유효성 검사 설정

주요 출처에서와 마찬가지로 디지털 애셋 링크와 각 도메인을 통해 검증이 이루어집니다. 자체 assetlinks.json 파일이 있어야 합니다.

www.example.comcheckout.example.com의 예에서는 다음과 같습니다.

  • https://www.example.com/.well-known/assetlinks.json
  • https://checkout.example.com/.well-known/assetlinks.json

각 도메인이 동일한 Android 애플리케이션에 연결되므로 assetlinks.json 파일은 완전히 똑같아 보일 수 있습니다.

Android 애플리케이션의 패키지 이름이 com.example.twa이라고 가정하면 둘 다 assetlink.json 파일에는 다음과 유사한 내용이 포함됩니다.

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
  "namespace": "android_app",
  "package_name": "com.example",
   "sha256_cert_fingerprints": ["..."]}
}]

Android 애플리케이션에 여러 출처 추가

Android 애플리케이션에서 asset_statements 선언은 검증이 필요한 출처:

<string name="asset_statements">
[{
    \"relation\": [\"delegate_permission/common.handle_all_urls\"],
    \"target\": {
        \"namespace\": \"web\",
        \"site\": \"https://www.example.com\"
    }
}],
[{
    \"relation\": [\"delegate_permission/common.handle_all_urls\"],
    \"target\": {
        \"namespace\": \"web\",
        \"site\": \"https://checkout.example.com\"
    }
}],
</string>

LauncherActivity에 출처 추가

기본 LauncherActivity 사용

android-browser-helper 지원 라이브러리의 일부인 LauncherActivity 는 Android 프로젝트를 구성하여 검증할 여러 출처를 추가하는 방법을 제공합니다.

먼저 res/values/strings.xml 파일에 string-array 요소를 추가합니다. 추가 URL은 각각 유효성 검사는 item 하위 요소 내에 있습니다.

...
<string-array name="additional_trusted_origins">
    <item>https://www.google.com</item>
</string-array>
...

그 다음, 새 meta-data 태그를 AndroidManifest.xml 내의 LauncherActivity:

...
<activity android:name="com.google.androidbrowserhelper.trusted.LauncherActivity"
    android:label="@string/app_name">


    <meta-data
        android:name="android.support.customtabs.trusted.ADDITIONAL_TRUSTED_ORIGINS"
        android:resource="@array/additional_trusted_origins" />


    ...
</activity>
...

맞춤 LauncherActivity 사용

사용자 지정 코드를 사용하여 신뢰할 수 있는 웹 활동을 실행하는 경우 신뢰할 수 있는 웹 활동을 실행하도록 인텐트를 빌드할 때 setAdditionalTrustedOrigins를 호출합니다.

public void launcherWithMultipleOrigins(View view) {
  List<String> origins = Arrays.asList(
      "https://checkout.example.com/"
  );


  TrustedWebActivityIntentBuilder builder = new TrustedWebActivityIntentBuilder(LAUNCH_URI)
      .setAdditionalTrustedOrigins(origins);


  new TwaLauncher(this).launch(builder, null, null);
}

결론

이 단계를 통해 이제 신뢰할 수 있는 웹 활동이 여러 출처를 지원할 준비가 되었습니다. android-browser-helper에는 여러 출처의 신뢰할 수 있는 웹 활동을 위한 샘플 애플리케이션이 있습니다. 제조업체 확인하시기 바랍니다.

문제 해결

디지털 애셋 링크 설정에는 몇 가지 움직이는 부분이 있습니다. 애플리케이션에 여전히 상단에 맞춤 탭 막대가 표시되면 구성에 문제가 있을 수 있습니다.

신뢰할 수 있는 웹 활동 빠른 시작 가이드에는 디지털 애셋 링크 문제를 디버그할 수 있습니다.

Digital Asset Links를 디버그하는 데 도움이 되는 놀라운 Peter's Asset Link Tool도 있습니다. 기기에 설치된 애플리케이션..