Aktivitas Web Tepercaya Multi-Origin

Aktivitas Web Tepercaya adalah cara baru untuk mengintegrasikan konten aplikasi web Anda seperti PWA dengan aplikasi Android menggunakan protokol berdasarkan Tab Khusus.

navigasi ff-origin

Aktivitas Web Tepercaya mengharuskan origin dibuka agar dapat divalidasi menggunakan Digital Asset Links agar dapat menampilkan konten dalam layar penuh.

Saat pengguna keluar dari asal yang divalidasi, UI Tab Khusus akan ditampilkan. Kolom URL di Tab Khusus memberi tahu pengguna bahwa mereka sedang bernavigasi di domain di luar aplikasi, sekaligus memberi pengguna tombol X yang memungkinkan mereka dengan cepat kembali ke asal yang divalidasi.

Namun, merupakan hal umum bagi Aplikasi Web untuk membuat pengalaman yang mencakup beberapa origin - Contohnya adalah aplikasi belanja dengan pengalaman utama di www.example.com, sementara alur checkout dihosting di checkout.example.com.

Dalam kasus semacam itu, menampilkan Tab Khusus tidak diinginkan, bukan hanya karena pengguna berada dalam aplikasi yang sama, tetapi juga karena panel atas dapat membuat pengguna berpikir bahwa mereka telah meninggalkan aplikasi dan mengabaikan checkout.

Aktivitas Web Tepercaya memungkinkan developer memvalidasi beberapa origin, dan pengguna akan tetap berada di layar penuh saat bernavigasi di origin tersebut. Seperti halnya domain utama, developer harus dapat mengontrol setiap asal yang divalidasi.

Menyiapkan validasi untuk beberapa origin

Seperti pada asal utama, validasi dilakukan melalui Digital Asset Links dan setiap domain yang akan divalidasi harus memiliki file assetlinks.json sendiri.

Dalam contoh dengan www.example.com dan checkout.example.com, kita akan mendapatkan:

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

Karena setiap domain terhubung ke aplikasi Android yang sama, file assetlinks.json akan terlihat sama persis.

Dengan asumsi nama paket untuk aplikasi Android adalah com.example.twa, kedua file assetlink.json akan berisi sesuatu yang mirip dengan berikut ini:

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

Menambahkan beberapa origin ke Aplikasi Android

Pada aplikasi Android, deklarasi asset_statements perlu diupdate agar memuat semua origin yang perlu divalidasi:

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

Menambahkan origin tambahan ke LauncherActivity

Menggunakan LauncherActivity default

LauncherActivity yang merupakan bagian dari support library android-browser-helper menyediakan cara untuk menambahkan beberapa origin untuk divalidasi dengan mengonfigurasi project Android.

Pertama, tambahkan elemen string-array ke file res/values/strings.xml. Setiap URL tambahan yang akan divalidasi akan berada di dalam sub-elemen item:

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

Selanjutnya, tambahkan tag meta-data baru di dalam elemen aktivitas yang ada yang mereferensikan LauncherActivity, di dalam AndroidManifest.xml:

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

Menggunakan LauncherActivity kustom

Saat menggunakan kode kustom untuk meluncurkan Aktivitas Web Tepercaya, menambahkan origin tambahan dapat dilakukan dengan memanggil setAdditionalTrustedOrigins saat membangun Intent untuk meluncurkan Aktivitas Web Tepercaya:

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);
}

Kesimpulan

Dengan langkah-langkah tersebut, Aktivitas Web Tepercaya kini siap mendukung beberapa origin. android-browser-helper memiliki aplikasi contoh untuk Aktivitas Web Tepercaya multi origin. Pastikan untuk memeriksanya.

Pemecahan masalah

Ada beberapa proses yang harus dilalui untuk menyiapkan Digital Asset Links. Jika aplikasi masih menampilkan panel Tab Khusus di bagian atas, mungkin ada yang salah dengan konfigurasi.

Panduan Memulai Cepat Aktivitas Web Tepercaya memiliki bagian pemecahan masalah yang bagus tentang cara men-debug masalah Digital Asset Link.

Kami juga menyediakan Peter's Asset Link Tool yang luar biasa untuk membantu men-debug Digital Asset Links pada aplikasi yang diinstal di perangkat.