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 nilaihttp
atauhttps
- 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>&
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
Memeriksa kebijakan link
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 berisiandroid:autoVerify="true"
, akan menunjukkan statusalways
. 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