Untuk menerima Firebase Dynamic Links yang Anda buat , Anda harus menyertakan Dynamic Links SDK di aplikasi Anda dan memanggil metode FirebaseDynamicLinks.getDynamicLink()
saat aplikasi Anda dimuat untuk mendapatkan data yang diteruskan di Dynamic Link.
Siapkan Firebase dan Dynamic Links SDK
Instal dan inisialisasi Firebase SDK untuk Flutter jika Anda belum melakukannya.
Dari direktori root project Flutter Anda, jalankan perintah berikut untuk menginstal plugin Dynamic Links:
flutter pub add firebase_dynamic_links
Jika Anda sedang mem-build aplikasi Android, buka halaman Project settings di Firebase console dan pastikan Anda telah menentukan kunci penandatanganan SHA-1. Jika Anda menggunakan Link Aplikasi, tentukan juga kunci SHA-256 Anda.
Integrasi platform
Selesaikan langkah-langkah integrasi platform berikut untuk platform tempat Anda membuat aplikasi.
Android
Di Android, Anda harus menambahkan tautan dalam penangkap filter maksud baru dari domain Anda, karena Tautan Dinamis akan dialihkan ke domain Anda jika aplikasi Anda terpasang. Ini diperlukan agar aplikasi Anda menerima data Tautan Dinamis setelah diinstal/diperbarui dari Play Store dan ketuk tombol Lanjutkan. Di AndroidManifest.xml
:
<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:host="example.com"
android:scheme="https"/>
</intent-filter>
Saat pengguna membuka Dynamic Link dengan deep link ke skema dan host yang Anda tentukan, aplikasi Anda akan memulai aktivitas dengan filter intent ini untuk menangani link tersebut.
Langkah selanjutnya adalah memastikan sidik jari SHA-256 dari sertifikat penandatanganan terdaftar di konsol Firebase untuk aplikasi tersebut. Anda dapat menemukan detail selengkapnya tentang cara mengambil sidik jari SHA-256 di halaman Otentikasi Klien Anda .
Platform Apple
Buat akun pengembang Apple jika Anda belum memilikinya.
Di halaman Setelan proyek konsol Firebase, pastikan aplikasi iOS Anda dikonfigurasi dengan benar dengan ID App Store dan ID Tim Anda.
Di situs Pengembang Apple, buat profil penyediaan untuk aplikasi Anda dengan mengaktifkan kemampuan Domain Terkait.
Di Xcode, lakukan hal berikut:
Buka aplikasi Anda di bawah tajuk TARGETS .
Di halaman Penandatanganan & Kemampuan, pastikan Tim Anda terdaftar, dan Profil Penyediaan Anda sudah diatur.
Pada halaman Penandatanganan & Kemampuan, aktifkan Domain Terkait dan tambahkan berikut ini ke daftar Domain Terkait (ganti contoh dengan domain Anda):
applinks:example.page.link
Di halaman Info, tambahkan Jenis URL ke proyek Anda. Setel kolom Skema URL ke ID bundel aplikasi Anda. (Identifier dapat berupa
Bundle ID
atau apa pun yang Anda inginkan.)Jika Anda telah menyiapkan domain khusus untuk proyek Firebase, tambahkan awalan URL Dynamic Link ke file
Info.plist
proyek iOS menggunakan kunciFirebaseDynamicLinksCustomDomains
.<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://custom.domain.io/path1</string> <string>https://custom.domain.io/path2</string> </array> ...other settings </dict> </plist>
Opsional: Nonaktifkan penggunaan papan pengumuman iOS oleh Dynamic Links SDK.
Secara default, Dynamic Links SDK menggunakan papan tulis untuk meningkatkan keandalan tautan dalam pascapemasangan. Dengan menggunakan papan tulis, Dynamic Links dapat memastikan bahwa saat pengguna membuka Dynamic Link tetapi perlu menginstal aplikasi Anda terlebih dahulu, pengguna dapat langsung membuka konten tertaut asli saat membuka aplikasi untuk pertama kali setelah penginstalan.
Sisi negatifnya adalah penggunaan papan tulis memicu pemberitahuan di iOS 14 dan yang lebih baru. Jadi, saat pertama kali pengguna membuka aplikasi Anda, jika papan tulis berisi URL Tautan Dinamis, mereka akan melihat pemberitahuan bahwa aplikasi Anda telah mengakses papan tulis, yang dapat menyebabkan kebingungan.
Untuk menonaktifkan perilaku ini, edit file
Info.plist
proyek Xcode Anda dan setel kunciFirebaseDeepLinkPasteboardRetrievalEnabled
keNO
.
Tangani tautan dalam
Untuk menangani Dynamic Link di aplikasi Anda, ada dua skenario yang perlu diterapkan.
Negara Dihentikan
Jika aplikasi dihentikan, metode FirebaseDynamicLinks.getInitialLink
memungkinkan Anda mengambil Dynamic Link yang membuka aplikasi.
Ini adalah permintaan asinkron, jadi masuk akal untuk menangani tautan sebelum merender logika aplikasi, seperti navigator. Misalnya, Anda dapat menangani ini di fungsi main
:
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(options: DefaultFirebaseConfig.platformOptions);
// Get any initial links
final PendingDynamicLinkData? initialLink = await FirebaseDynamicLinks.instance.getInitialLink();
runApp(MyApp(initialLink));
}
Dalam logika aplikasi Anda, Anda kemudian dapat memeriksa apakah tautan telah ditangani dan melakukan tindakan, misalnya:
if (initialLink != null) {
final Uri deepLink = initialLink.link;
// Example of using the dynamic link to push the user to a different screen
Navigator.pushNamed(context, deepLink.path);
}
Alternatifnya, jika Anda ingin mengidentifikasi apakah Dynamic Link yang tepat digunakan untuk membuka aplikasi, teruskan ke metode getDynamicLink
:
String link = 'https://dynamic-link-domain/ke2Qa';
final PendingDynamicLinkData? initialLink = await FirebaseDynamicLinks.instance.getDynamicLink(Uri.parse(link));
Latar Belakang / Foreground State
Saat aplikasi terbuka, atau di latar belakang, Anda dapat mendengarkan peristiwa Dynamic Links menggunakan pengendali aliran. Getter FirebaseDynamicLinks.onLink
menampilkan Stream
yang berisi PendingDynamicLinkData
:
FirebaseDynamicLinks.instance.onLink.listen((dynamicLinkData) {
Navigator.pushNamed(context, dynamicLinkData.link.path);
}).onError((error) {
// Handle errors
});
Menguji Tautan Dinamis Pada Platform iOS
Untuk menguji tautan dinamis di iOS, Anda harus menggunakan perangkat yang sebenarnya. Anda juga perlu menjalankan aplikasi dalam mode rilis (yaitu flutter run --release
.), jika menguji tautan dinamis dari status aplikasi yang dihentikan (yaitu aplikasi telah ditutup.).