Oluşturduğunuz Firebase Dynamic Links öğesini almak için uygulamanıza Dynamic Links SDK'sını 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.7.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' }
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 BoM'ı kullanmanızı önemle tavsiye ederiz. Bu, tüm sürümlerin uyumlu olmasını sağlar.
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 ekleme
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 ana makineye 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 intent'ten alınabilse bile bağlantı tarafından başlatılabilecek her etkinlikte getDynamicLink()
çağrısı yapmanız gerekir. getDynamicLink()
çağrısı, bağlantıyı alır ve bu verileri temizler. Böylece, uygulamanız tarafından yalnızca bir kez işlenir.
Genellikle ana etkinlikte ve bağlantıyla eşleşen intent filtreleri tarafından başlatılan tüm etkinliklerde getDynamicLink()
çağrılır.
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'ü kurup kullanma:
- 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.
App Links'i kullanarak Dynamic Links'ü işleme
Android 6.0 (API düzeyi 23) ve sonraki sürümlerde, Android Uygulama Bağlantıları'nı kullanarak uygulamanızı, Dynamic Links uygulamanız zaten yüklüyken doğrudan işlemleri yürütecek ş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ılma, kullanıcıyı doğrudan uygulamaya yönlendirdiğinden dinamik bağlantılar, gerekli minimum sürümü karşılayamaz. Bu nedenle, uygulama açıldığında 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.