Oluşturduğunuz Firebase Dinamik Bağlantıları almak için uygulamanıza Dinamik Bağlantılar SDK'sını eklemeniz ve uygulamanız yüklendiğinde Dinamik Bağlantı'da iletilen verileri almak için FirebaseDynamicLinks.getDynamicLink()
yöntemini çağırmanız gerekir.
Firebase'i ve Dynamic Links SDK'yı kurun
Henüz yapmadıysanız Android projenize Firebase'i ekleyin .
Uygulamanızı kaydederken SHA-1 imzalama anahtarınızı belirtin. Uygulama Bağlantılarını kullanıyorsanız SHA-256 anahtarınızı da belirtin.
Modülünüzde (uygulama düzeyi) Gradle dosyanızda (genellikle
<project>/<app-module>/build.gradle.kts
veya<project>/<app-module>/build.gradle
), Dinamik Bağlantılar için bağımlılığı ekleyin Android için kütüphane. Kitaplık sürümlerini kontrol etmek için Firebase Android BoM'yi kullanmanızı öneririz.Dinamik Bağlantılarla en iyi deneyimi elde etmek 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:32.6.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'yi kullandığınızda uygulamanız her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanır.
Kotlin'e özgü bir kütüphane modülü mü arıyorsunuz? Ekim 2023'ten itibaren (Firebase BoM 32.5.0) hem Kotlin hem de Java geliştiricileri ana kütüphane modülüne güvenebilecekler (ayrıntılar için bu girişimle ilgili SSS'ye bakın).(Alternatif) BoM'yi kullanmadan Firebase kitaplığı bağımlılıklarını ekleyin
Firebase BoM'yi kullanmamayı tercih ederseniz her Firebase kitaplığı 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ğlayan BoM'yi kullanmanızı önemle tavsiye ettiğimizi unutmayın.
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.2.0' implementation 'com.google.firebase:firebase-analytics:21.5.0' }
- Firebase konsolunda Dinamik Bağlantılar bölümünü açın. İstenirse hizmet şartlarını kabul edin.
Derin bağlantılar için amaç filtresi ekleyin
Düz derin bağlantılarda olduğu gibi, uygulamanız için derin bağlantıları işleyen etkinliğe yeni bir amaç filtresi eklemeniz gerekir. Uygulamanız yüklüyse Dinamik Bağlantı alanınıza yönlendireceğinden amaç filtresinin alan adınızın derin bağlantılarını yakalaması gerekir. Bu, uygulamanızın Play Store'dan yüklendikten/güncellendikten ve Devam düğmesine bastıktan sonra Dinamik Bağlantı verilerini alması için gereklidir. 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>
Kullanıcılar belirttiğiniz şemaya ve ana bilgisayara derin bağlantı içeren bir Dinamik Bağlantı açtığında, uygulamanız bağlantıyı işlemek için bu amaç filtresiyle etkinliği başlatır.
Derin bağlantıları yönetin
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 getDynamicLink()
getIntent().getData()
çağırmanız gerekir. getDynamicLink()
çağrıldığında bağlantı alınır ve 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 amaç filtreleri tarafından başlatılan tüm etkinliklerde getDynamicLink()
işlevini çağırırsınız.
Analizleri kaydedin
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 kaydetmek için derin bağlantıyı almadan önce Google Analytics'i yapılandırmanız gerekir. Aşağıdaki koşulların karşılandığını kontrol edin:
- Uygulama giriş noktalarınızda
FirebaseDynamicLinks.getDynamicLink()
öğesini arayın: - Başlatıcı etkinlikleri. örneğin:
action="android.intent.action.MAIN"
,category="android.intent.category.LAUNCHER"
. - Etkinlik giriş noktaları. örneğin:
onStart()
,onCreate()
. - Derin bağlantı etkinlikleri.
- Google Analytics'i kurun ve kullanın:
- Google Analytics bağımlılığını ekleyin. Bu genellikle
google-services
Gradle eklentisi tarafından otomatik olarak eklenir. -
google-services.json
yapılandırma dosyasını uygulamanıza ekleyin . -
FirebaseAnalytics.getInstance()
çağırmadan önceFirebaseDynamicLinks.getDynamicLink()
çağırın.
Uygulama Bağlantılarını Kullanarak Dinamik Bağlantıları Yönetme
Android 6.0 (API düzeyi 23) ve üzeri sürümlerde, uygulamanız zaten yüklü olduğunda Android Uygulama Bağlantıları'nı kullanarak uygulamanızı Dinamik Bağlantıları doğrudan işleyecek şekilde ayarlayabilirsiniz.
Uygulamanız için SHA256 sertifikası parmak izini Firebase konsolundaki projenize eklediğinizden emin olun. Dinamik Bağlantılar, Dinamik Bağlantılar alan adınız için Uygulama Bağlantıları web sitesi ilişkisinin kurulumunu gerçekleştirecektir.
Etkinliğe, Dinamik Bağlantıyı işleyecek, ana makineyi Firebase konsolunda bulunan projenizin Dinamik Bağlantılar alanına ayarlayacak otomatik olarak doğrulanmış bir amaç filtresi ekleyin. 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>
android:host
derin bağlantınızın alanına değil, Dinamik Bağlantılar alanınıza ayarlanması gerektiğini unutmayın.
Uygulama Bağlantılarının devreye girebilmesi için bildiriminizdeki tüm autoVerify
amaç filtrelerinin kaydedilmesi gerekir. Firebase bunu Dinamik Bağlantılar alanlarınız için otomatik olarak işler, ancak bunu Dinamik Bağlantılar alanınızda barındırılan assetlinks.json
dosyasını açarak kontrol edebilirsiniz:
https://YOUR_DOMAIN/.well-known/assetlinks.jsonTüm Firebase uygulamalarınızın paket adları dahil edilmelidir.
Dinamik Bağlantılar artık doğrudan uygulamanıza gönderilecek. Uygulama Bağlantıları amacı filtresini eklediğiniz Etkinlikte (Derin bağlantıları işleme bölümünde açıklandığı gibi getDynamicLink()
öğesini çağırarak derin bağlantıyı ve diğer Dinamik Bağlantı verilerini elde edebileceksiniz.
Not: Uygulama Bağlantıları aracılığıyla çağrılması kullanıcıyı doğrudan uygulamaya yönlendirdiğinden Dinamik Bağlantı gerekli minimum sürümü karşılayamaz. Dolayısıyla 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.