Menguji Tautan Aplikasi

Saat mengimplementasikan fitur penautan aplikasi, Anda harus menguji fungsi penautan untuk memastikan sistem dapat mengaitkan aplikasi Anda dengan situs web, dan menangani permintaan URL, seperti yang Anda harapkan.

Untuk menguji file pernyataan yang ada, Anda dapat menggunakan alat Generator dan Tester Daftar Pernyataan.

Bagian berikut menjelaskan cara menguji verifikasi Link Aplikasi Anda secara manual. Jika mau, Anda dapat menguji verifikasi dari alat Deep Link Play atau Asisten Link Aplikasi Android Studio.

Mengonfirmasi daftar host yang akan diverifikasi

Saat menguji, Anda harus mengonfirmasi daftar host terkait yang harus diverifikasi sistem untuk aplikasi Anda. Buat daftar semua URL yang filter intent terkaitnya berisi atribut dan elemen berikut:

  • Atribut android:scheme dengan nilai http atau https
  • Atribut android:host dengan pola URL domain
  • Elemen tindakan android.intent.action.VIEW
  • Elemen kategori android.intent.category.BROWSABLE

Gunakan daftar ini untuk memeriksa apakah file JSON Digital Asset Links telah tersedia di setiap host dan subdomain yang ditentukan.

Mengonfirmasi file Digital Asset Links

Untuk setiap situs, gunakan Digital Asset Links API untuk mengonfirmasi bahwa file JSON Digital Asset Links telah di-host dan didefinisikan dengan benar:

https://digitalassetlinks.googleapis.com/v1/statements:list?
   source.web.site=https://<var>domain.name</var>:<var>optional_port</var>&amp;
   relation=delegate_permission/common.handle_all_urls

Untuk Link Aplikasi Dinamis, Anda juga dapat memeriksa ekstensi relasi.

https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://www.example.com&relation=delegate_permission/common.handle_all_urls&return_relation_extensions=true

Sebagai bagian dari proses pengujian, Anda dapat memeriksa setelan sistem saat ini untuk penanganan link. Gunakan perintah berikut untuk mendapatkan daftar kebijakan penanganan link yang ada bagi semua aplikasi di perangkat Anda yang terhubung:

adb shell dumpsys package domain-preferred-apps

Perintah berikut melakukan hal yang sama:

adb shell dumpsys package d

Perintah ini menampilkan daftar setiap pengguna atau profil yang ditentukan pada perangkat, diawali oleh header dalam format berikut:

App linkages for user 0:

Setelah header ini, output menggunakan format berikut untuk mencantumkan setelan penanganan link bagi pengguna tersebut:

Package: com.android.vending
Domains: play.google.com market.android.com
Status: always : 200000002

Daftar ini menunjukkan aplikasi mana yang terkait dengan domain untuk pengguna tersebut:

  • Package - Mengidentifikasi aplikasi menurut nama paket, seperti yang dideklarasikan dalam manifesnya.
  • Domains - Menampilkan daftar lengkap host yang link webnya ditangani aplikasi ini, menggunakan spasi kosong sebagai pembatasnya.
  • Status - Menunjukkan setelan penanganan link saat ini untuk aplikasi ini. Aplikasi yang telah lolos verifikasi, dan manifesnya berisi android:autoVerify="true", akan menunjukkan status always. Angka heksadesimal setelah status ini berkaitan dengan catatan sistem Android atas preferensi penautan aplikasi pengguna. Nilai ini tidak menunjukkan apakah verifikasi berhasil.

Contoh pengujian

Agar verifikasi link aplikasi berhasil, sistem harus dapat memverifikasi aplikasi Anda dengan setiap situs yang Anda tetapkan dalam filter intent tertentu yang memenuhi kriteria untuk link aplikasi. Contoh berikut menunjukkan konfigurasi manifes dengan beberapa link aplikasi yang telah ditentukan:

<activity android:name=”MainActivity”>
        <intent-filter android:autoVerify="true">
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="https" />
            <data android:scheme="https" />
            <data android:host="www.example.com" />
            <data android:host="mobile.example.com" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="https" />
            <data android:host="www.example2.com" />
        </intent-filter>
    </activity>

    <activity android:name=”SecondActivity”>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="https" />
            <data android:host="account.example.com" />
        </intent-filter>
    </activity>

      <activity android:name=”ThirdActivity”>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="https" />
            <data android:host="map.example.com" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="market" />
            <data android:host="example.com" />
        </intent-filter>
      </activity>

</application>

Daftar host yang akan coba diverifikasi oleh platform dari manifes sebelumnya adalah:

www.example.com
mobile.example.com
www.example2.com
account.example.com

Daftar host yang tidak akan coba diverifikasi oleh platform dari manifes sebelumnya adalah:

map.example.com (it does not have android.intent.category.BROWSABLE)
market://example.com (it does not have either an "http" or "https" scheme)

Untuk mempelajari daftar pernyataan lebih lanjut, lihat Membuat Daftar Pernyataan