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
Jika Anda belum melakukannya, tambahkan Firebase ke proyek Android Anda .
Saat Anda mendaftarkan aplikasi, tentukan kunci penandatanganan SHA-1 Anda. Jika Anda menggunakan Link Aplikasi, tentukan juga kunci SHA-256 Anda.
Dalam file Gradle modul (level aplikasi) Anda (biasanya
<project>/<app-module>/build.gradle
), tambahkan dependensi untuk library Android Dynamic Links. Kami merekomendasikan penggunaan Firebase Android BoM untuk mengontrol pembuatan versi library.Untuk pengalaman optimal dengan Dynamic Links, sebaiknya aktifkan Google Analytics di project Firebase Anda dan tambahkan Firebase SDK untuk Google Analytics ke aplikasi Anda.
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.0') // Add the dependencies for the Dynamic Links and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links-ktx' implementation 'com.google.firebase:firebase-analytics-ktx' }
Dengan menggunakan Firebase Android BoM , aplikasi Anda akan selalu menggunakan versi pustaka Android Firebase yang kompatibel.
(Alternatif) Tambahkan dependensi library Firebase tanpa menggunakan BoM
Jika Anda memilih untuk tidak menggunakan Firebase BoM, Anda harus menentukan setiap versi pustaka Firebase di baris dependensinya.
Perhatikan bahwa jika Anda menggunakan beberapa pustaka Firebase di aplikasi Anda, kami sangat menyarankan penggunaan BoM untuk mengelola versi pustaka, yang memastikan bahwa semua versi kompatibel.
dependencies { // Add the dependencies for the Dynamic Links and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links-ktx:21.1.0' implementation 'com.google.firebase:firebase-analytics-ktx:21.2.0' }
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.0') // Add the dependencies for the Dynamic Links and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links' implementation 'com.google.firebase:firebase-analytics' }
Dengan menggunakan Firebase Android BoM , aplikasi Anda akan selalu menggunakan versi pustaka Android Firebase yang kompatibel.
(Alternatif) Tambahkan dependensi library Firebase tanpa menggunakan BoM
Jika Anda memilih untuk tidak menggunakan Firebase BoM, Anda harus menentukan setiap versi pustaka Firebase di baris dependensinya.
Perhatikan bahwa jika Anda menggunakan beberapa pustaka Firebase di aplikasi Anda, kami sangat menyarankan penggunaan BoM untuk mengelola versi pustaka, yang memastikan bahwa semua versi kompatibel.
dependencies { // Add the dependencies for the Dynamic Links and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links:21.1.0' implementation 'com.google.firebase:firebase-analytics:21.2.0' }
- Di konsol Firebase , buka bagian Tautan Dinamis . Terima persyaratan layanan jika Anda diminta untuk melakukannya.
Tambahkan filter maksud untuk tautan dalam
Seperti tautan dalam biasa , Anda harus menambahkan filter maksud baru ke aktivitas yang menangani tautan dalam untuk aplikasi Anda. Filter maksud harus menangkap tautan dalam 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.
Tangani tautan dalam
Untuk menerima tautan dalam, panggil metode
getDynamicLink()
:Kotlin+KTX
Firebase.dynamicLinks .getDynamicLink(intent) .addOnSuccessListener(this) { pendingDynamicLinkData: PendingDynamicLinkData? -> // Get deep link from result (may be null if no link is found) var deepLink: Uri? = null if (pendingDynamicLinkData != null) { deepLink = pendingDynamicLinkData.link } // Handle the deep link. For example, open the linked // content, or apply promotional credit to the user's // account. // ... } .addOnFailureListener(this) { e -> Log.w(TAG, "getDynamicLink:onFailure", e) }
Java
FirebaseDynamicLinks.getInstance() .getDynamicLink(getIntent()) .addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() { @Override public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) { // Get deep link from result (may be null if no link is found) Uri deepLink = null; if (pendingDynamicLinkData != null) { deepLink = pendingDynamicLinkData.getLink(); } // Handle the deep link. For example, open the linked // content, or apply promotional credit to the user's // account. // ... // ... } }) .addOnFailureListener(this, new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "getDynamicLink:onFailure", e); } });
Anda harus memanggil
getDynamicLink()
di setiap aktivitas yang mungkin diluncurkan oleh tautan, meskipun tautan tersebut mungkin tersedia dari maksud menggunakangetIntent().getData()
. MemanggilgetDynamicLink()
akan mengambil tautan dan menghapus data tersebut sehingga hanya diproses satu kali oleh aplikasi Anda.Anda biasanya memanggil
getDynamicLink()
di aktivitas utama serta aktivitas apa pun yang diluncurkan oleh filter maksud yang cocok dengan tautan.Rekam analitik
Peristiwa berikut dapat dilacak secara otomatis di Google Analytics dan ditampilkan di konsol Firebase.
-
dynamic_link_app_open
-
dynamic_link_first_open
-
dynamic_link_app_update
Untuk mendaftarkan peristiwa ini, Anda perlu mengonfigurasi Google Analytics sebelum mengambil tautan dalam. Periksa kondisi berikut terpenuhi:
- Panggil
FirebaseDynamicLinks.getDynamicLink()
di titik masuk aplikasi Anda: - Kegiatan peluncur. misalnya:
action="android.intent.action.MAIN"
,category="android.intent.category.LAUNCHER"
. - Titik masuk aktivitas. misalnya:
onStart()
,onCreate()
. - Aktivitas tautan dalam.
- Siapkan dan gunakan Google Analytics:
- Sertakan ketergantungan Google Analytics. Ini biasanya ditambahkan secara otomatis oleh plugin
google-services
Gradle. - Sertakan file konfigurasi
google-services.json
di aplikasi Anda. - Panggil
FirebaseAnalytics.getInstance()
sebelum memanggilFirebaseDynamicLinks.getDynamicLink()
.
Menangani Tautan Dinamis menggunakan Tautan Aplikasi
Di Android 6.0 (API level 23) dan yang lebih tinggi, Anda dapat menyiapkan aplikasi untuk menangani Dynamic Links secara langsung saat aplikasi sudah diinstal menggunakan Android App Links .
Pastikan Anda telah menambahkan sidik jari sertifikat SHA256 untuk aplikasi Anda ke proyek Anda di konsol Firebase . Dynamic Links akan menangani penyiapan asosiasi situs web App Links untuk domain Dynamic Links Anda.
Tambahkan filter maksud yang diverifikasi otomatis ke Aktivitas yang akan menangani Tautan Dinamis, menyetel host ke domain Tautan Dinamis proyek Anda seperti yang ditemukan di konsol Firebase . Di
AndroidManifest.xml
:<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:host="example.com/link" android:scheme="http"/> <data android:host="example.com/link" android:scheme="https"/> </intent-filter>
Perhatikan bahwa
android:host
harus disetel ke domain Dynamic Links Anda, dan bukan domain tautan dalam Anda.Semua filter intent
autoVerify
di manifes Anda harus didaftarkan agar Link Aplikasi dapat terlibat. Firebase menangani ini secara otomatis untuk domain Dynamic Links Anda, tetapi Anda dapat memeriksanya dengan membuka fileassetlinks.json
yang dihosting di domain Dynamic Links Anda:https://YOUR_DOMAIN/.well-known/assetlinks.json
Semua nama paket aplikasi Firebase Anda harus disertakan.Tautan Dinamis sekarang akan dikirim langsung ke aplikasi Anda. Anda akan bisa mendapatkan tautan dalam dan data Tautan Dinamis lainnya dengan memanggil
getDynamicLink()
dalam Aktivitas tempat Anda menambahkan filter maksud Tautan Aplikasi (seperti yang dijelaskan dalam Menangani tautan dalam ).Catatan: Karena pemanggilan melalui App Links membawa pengguna langsung ke aplikasi, Dynamic Link tidak dapat mematuhi versi minimum yang diperlukan. Jadi setelah aplikasi dibuka, Anda perlu membandingkan versi minimum Tautan Dinamis ( getminimumappversion ) dengan PackageInfo.versionCode dan mengarahkan ulang pengguna untuk memutakhirkan aplikasi jika diperlukan menggunakan getUpdateAppIntent .
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Last updated 2023-02-04 UTC.
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Informasi yang saya butuhkan tidak ada" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Terlalu rumit/langkahnya terlalu banyak" },{ "type": "thumb-down", "id": "outOfDate", "label":"Sudah usang" },{ "type": "thumb-down", "id": "translationIssue", "label":"Masalah terjemahan" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Masalah kode / contoh" },{ "type": "thumb-down", "id": "otherDown", "label":"Lainnya" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Mudah dipahami" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Memecahkan masalah saya" },{ "type": "thumb-up", "id": "otherUp", "label":"Lainnya" }]