Oluşturduğunuz Firebase Dynamic Links öğesini almak için Dynamic Links SDK'sını uygulamanıza eklemeniz ve uygulamanız yüklendiğinde Dynamic Link içinde iletilen verileri almak için FirebaseDynamicLinks.getDynamicLink()
yöntemini çağırmanız gerekir.
Firebase ve Dynamic Links SDK'sını ayarlama
Henüz yapmadıysanız Firebase'i Android projenize ekleyin.
Uygulamanızı kaydettirirken SHA-1 imzalama anahtarınızı belirtin. Uygulama Bağlantıları kullanıyorsanız SHA-256 anahtarınızı da belirtin.
-
Modül (uygulama düzeyi) Gradle dosyanıza (genellikle
<project>/<app-module>/build.gradle.kts
veya<project>/<app-module>/build.gradle
) Android için Dynamic Links kitaplığının bağımlılığını ekleyin. Kitaplık sürümlendirmesini kontrol etmek için Firebase Android BoM simgesini kullanmanızı öneririz.Dynamic Links ile en iyi deneyimi yaşamak için Firebase projenizde Google Analytics'i etkinleştirmenizi ve Google Analytics için Firebase SDK'sını uygulamanıza eklemenizi öneririz.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.5.1")) // 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' }
Firebase Android BoM kullanıldığında uygulamanız Firebase Android kitaplıklarının daima uyumlu sürümlerini kullanır.
(Alternatif) BoM
Firebase BoM kullanmamayı seçerseniz her Firebase kitaplık sürümünü bağımlılık satırında belirtmeniz gerekir.
Uygulamanızda birden fazla Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için tüm sürümlerin uyumlu olmasını sağlamak amacıyla BoM kullanmanızı önemle tavsiye ederiz.
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:22.1.0' implementation 'com.google.firebase:firebase-analytics:22.1.2' }
- Firebase konsolunda Dynamic Links bölümünü açın. İstenirse hizmet şartlarını kabul edin.
Derin bağlantılar için intent filtresi ekleyin
Basit derin bağlantılarda olduğu gibi, uygulamanızın derin bağlantılarını işleyen etkinliğe yeni bir intent filtresi eklemeniz gerekir. Uygulamanız yüklüyse Dynamic Link alanınıza yönlendireceğinden intent filtresi, alanınızın derin bağlantılarını yakalamalıdır. Bu, uygulamanızın Play Store'dan yüklenip/güncellendikten ve kullanıcı Devam düğmesine dokunduktan sonra Dynamic Link verilerini alması için gereklidir. AndroidManifest.xml
'te:
<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>
Kullanıcılar, belirttiğiniz şemaya ve barındırıcıya derin bağlantı içeren bir Dynamic Link açtığında uygulamanız, bağlantıyı işlemek için etkinliği bu intent filtresiyle başlatır.
Derin bağlantıları işleme
Derin bağlantıyı almak için getDynamicLink()
yöntemini çağırın:
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); } });
Bağlantı getIntent().getData()
kullanılarak amaçtan kullanılabilir olsa bile bağlantı tarafından başlatılabilecek her etkinlikte getDynamicLink()
çağrısı yapmanız gerekir. getDynamicLink()
çağrıldığında bağlantı alınır ve ilgili veriler temizlenir. Böylece veriler uygulamanız tarafından yalnızca bir kez işlenir.
Normalde ana etkinlikte ve bağlantıyla eşleşen intent filtreleri tarafından başlatılan tüm etkinliklerde getDynamicLink()
öğesini çağırırsınız.
Kayıt analizleri
Aşağıdaki etkinlikler Google Analytics'te otomatik olarak izlenebilir ve Firebase konsolunda gösterilebilir.
dynamic_link_app_open
dynamic_link_first_open
dynamic_link_app_update
Bu etkinlikleri kaydedebilmek için derin bağlantıyı aldıktan önce Google Analytics öğesini yapılandırmanız gerekir. Aşağıdaki koşulların karşılanıp karşılanmadığını kontrol edin:
- Uygulama giriş noktalarınızda
FirebaseDynamicLinks.getDynamicLink()
işlevini çağırın: - Başlatıcı etkinlikleri. Ör.:
action="android.intent.action.MAIN"
,category="android.intent.category.LAUNCHER"
. - Etkinlik giriş noktaları. Ör.:
onStart()
,onCreate()
. - Derin bağlantı etkinlikleri.
- Google Analytics özelliğini kurun ve kullanın:
- Google Analytics bağımlılığını ekleyin. Bu genellikle
google-services
Gradle eklentisi tarafından otomatik olarak eklenir. - Uygulamanıza
google-services.json
yapılandırma dosyasını ekleyin. FirebaseDynamicLinks.getDynamicLink()
'u aramadan önceFirebaseAnalytics.getInstance()
'ü arayın.
Uygulama Bağlantılarını kullanarak Dynamic Links kullanımı
Android 6.0 (API düzeyi 23) ve sonraki sürümlerde, Android App Links kullanarak uygulamanızı doğrudan Dynamic Links yüklü olduğunda işleyecek şekilde ayarlayabilirsiniz.
Uygulamanızın SHA256 sertifika parmak izini Firebase konsolunda projenize eklediğinizden emin olun. Dynamic Links, Dynamic Links alanınız için Uygulama Bağlantıları web sitesi ilişkilendirmesini oluşturur.
Etkinliğe, Dynamic Link ile ilgilenecek otomatik olarak doğrulanmış bir intent filtresi ekleyin. Barındırıcıyı, Firebase konsolunda bulunan projenizin Dynamic Links alanına ayarlayın. AndroidManifest.xml
'te:
<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>
android:host
değerinin, derin bağlantınızın alanı yerine Dynamic Links alanınıza ayarlanması gerektiğini unutmayın.
Uygulama bağlantılarının etkileşim kurabilmesi için manifest'inizdeki tüm autoVerify
intent filtrelerinin kayıtlı olması gerekir. Firebase, bu işlemi Dynamic Links alanlarınız için otomatik olarak yapar ancak Dynamic Links alanınızda barındırılan assetlinks.json
dosyasını açarak bu durumu kontrol edebilirsiniz:
https://YOUR_DOMAIN/.well-known/assetlinks.json
Dynamic Links artık doğrudan uygulamanıza gönderilir. Uygulama Bağlantıları intent filtresini eklediğiniz Etkinlik'te getDynamicLink()
'yi çağırarak derin bağlantıyı ve diğer Dynamic Link verilerini alabilirsiniz (Derin bağlantıları işleme bölümünde açıklandığı gibi).
Not: Uygulama Bağlantıları aracılığıyla çağrı yapmak, kullanıcıyı doğrudan uygulamaya yönlendirdiğinden Dinamik Bağlantı, gerekli minimum sürümü karşılayamaz. Bu nedenle, uygulama açıldıktan sonra Dinamik Bağlantının minimum sürümünü ( getminimumappversion) PackageInfo.versionCode ile karşılaştırmanız ve gerekirse getUpdateAppIntent kullanarak kullanıcıyı uygulamayı yükseltmeye yönlendirmeniz gerekir.