Mendukung deep link

Mulai versi 1.2.0, Navigation 3 mendukung deep linking ke tujuan di aplikasi Anda menggunakan class DeepLinkRequest dan DeepLinkMatcher.

Untuk mendukung deep link di aplikasi Anda, selesaikan langkah-langkah berikut:

  1. Tentukan filter intent di AndroidManifest.xml untuk menentukan URI yang dapat ditangani aplikasi Anda.
  2. Buat instance DeepLinkMatcher untuk memetakan permintaan masuk ke kunci navigasi Anda.
  3. Cocokkan permintaan masuk dalam metode onCreate atau onNewIntent aktivitas Anda dan perbarui data sebelumnya.

Membuat DeepLinkRequest

DeepLinkRequest mewakili deep link masuk. Objek ini berisi DeepLinkUri dan RequestExtras opsional dengan informasi tambahan, seperti tindakan intent atau jenis MIME.

Berikan DeepLinkRequest tambahan

Untuk menyimpan informasi tambahan terkait deep link, gunakan class RequestExtras. Untuk membuat penentuan dan pembuatan instance tambahan yang aman dari jenis, library menyediakan antarmuka RequestExtrasKey dan DSL requestExtras.

Selain itu, library ini menyediakan dua kunci tambahan dan helper terkait:

Untuk menentukan tambahan kustom Anda sendiri, implementasikan antarmuka RequestExtrasKey dengan generik yang diketik:

Anda juga dapat menggunakan emptyRequestExtras() untuk membuat instance kosong, atau menggabungkan tambahan menggunakan operator + (plus) dan - (minus).

Membuat DeepLinkRequest dari Intent

Di Android, Anda dapat membuat DeepLinkRequest langsung dari Intent. Jika dibuat dengan cara ini, DeepLinkRequest akan dibuat sebagai berikut:

DeepLinkMatcher memetakan instance DeepLinkRequest yang masuk ke kunci navigasi yang dapat ditambahkan ke data sebelumnya aplikasi Anda. Navigation 3 menyediakan tiga matcher bawaan: UriDeepLinkMatcher untuk pencocokan URI berbasis pola, StaticKeyDeepLinkMatcher untuk link dasar, dan BackStackMatcher untuk membuat data sebelumnya sintetis. Library ini juga mendukung pencocok kustom untuk kasus penggunaan yang tidak tercakup oleh pencocok bawaan.

Untuk mengetahui informasi selengkapnya, lihat Membuat DeepLinkMatcher.

Menambahkan filter intent

Untuk mengaktifkan deep link agar memulai aktivitas, Anda harus menentukan elemen <intent-filter> yang cocok di AndroidManifest.xml aplikasi Anda. Untuk informasi selengkapnya, lihat Menambahkan filter intent untuk link masuk.

Mencocokkan permintaan masuk

Setelah membuat instance DeepLinkMatcher, Anda dapat mencocokkan permintaan masuk dalam aktivitas Anda.

Untuk mencocokkan permintaan masuk, selesaikan langkah-langkah berikut:

  1. Buat instance DeepLinkMatcher Anda.
  2. Gabungkan semua instance DeepLinkMatcher, baik secara eksplisit maupun menggunakan multibinding.
  3. Buat DeepLinkRequest dari Intent yang masuk.
  4. Cocokkan permintaan dengan semua pencocok dan temukan kecocokan terbaik.
  5. Buat data sebelumnya dari hasil pencocokan.