Oluşturduğunuz Firebase Dynamic Links'i almak için uygulamanıza Dynamic Links SDK'sını eklemeniz ve Dynamic Link'te iletilen verileri almak için uygulamanız yüklendiğinde FirebaseDynamicLinks.getDynamicLink()
yöntemini çağırmanız gerekir.
Firebase ve Dynamic Links SDK'sını ayarlar
Henüz yapmadıysanız Firebase'i Android projenize ekleyin.
Uygulamanızı kaydederken SHA-1 imzalama anahtarınızı belirtin. App Links kullanıyorsanız SHA-256 anahtarınızı da belirtin.
-
Modül (uygulama düzeyinde) Gradle dosyanıza (genellikle
<project>/<app-module>/build.gradle.kts
veya<project>/<app-module>/build.gradle
), Android için Dynamic Links kitaplığına yönelik bağımlılığı ekleyin. Kitaplık sürümünü kontrol etmek için Firebase Android BoM'u kullanmanızı öneririz.Dynamic Links ile optimum bir deneyim 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.1.2")) // 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 her zaman uyumlu sürümlerini kullanır.
(Alternatif) BoM'u kullanmadan Firebase kitaplığı bağımlılıklarını ekleme
Firebase BoM'yi kullanmamayı seçerseniz 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 BoM kullanmanızı önemle tavsiye ederiz. Böylece tüm sürümlerin uyumlu olması sağlanır.
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.0.2' }
- Firebase konsolunda Dinamik Bağlantılar bölümünü açın. İstendiğinde hizmet şartlarını kabul edin.
Derin bağlantılar için intent filtresi ekleyin
Düz 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üklenirse Dinamik Bağlantı sizi 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üklendikten/güncellendikten sonra Dinamik Bağlantı verilerini alması ve Devam düğmesine bir kez dokunulması için gereklidir. AndroidManifest.xml
ürününde:
<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 şema ve ana makineye derin bağlantı içeren bir Dinamik Bağlantı'yı açtığında uygulamanız bağlantıyı işlemek için etkinliği bu intent filtresiyle başlatır.
Derin bağlantıları yönetme
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.
Analizleri kaydet
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şılanıp karşılanmadığını kontrol edin:
- Uygulamanızın giriş noktalarında
FirebaseDynamicLinks.getDynamicLink()
numarasını arayın: - Launcher etkinlikleri. ör.:
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ı dahil edin. Bu genellikle
google-services
Gradle eklentisi tarafından otomatik olarak eklenir. - Uygulamanıza
google-services.json
yapılandırma dosyasını ekleyin. FirebaseDynamicLinks.getDynamicLink()
numaralı telefonu aramadan önceFirebaseAnalytics.getInstance()
adlı kuruluşu arayın.
Uygulama Bağlantılarını Kullanarak Dinamik Bağlantıları yönetme
Android 6.0 (API düzeyi 23) ve sonraki sürümlerde, Android App Links kullanarak uygulamanızı doğrudan yüklü olduğunda Dinamik Bağlantılar'ı işleyecek şekilde ayarlayabilirsiniz.
Firebase konsolunda projenize uygulamanız için SHA256 sertifika parmak izini eklediğinizden emin olun. Dynamic Links, Dynamic Links alan adınız için App Links web sitesi ilişkilendirmesini ayarlama işini üstlenecektir.
Dinamik Bağlantı'yı işleyecek Etkinliğe otomatik olarak doğrulanmış bir intent filtresi ekleyin. Ardından, ana makineyi projenizin Dynamic Links alan adına Firebase konsolunda bulunan şekilde ayarlayın. AndroidManifest.xml
içinde:
<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
öğesinin, derin bağlantınızın alan adına değil, Dynamic Links alan adınıza ayarlanması gerektiğini
unutmayın.
Uygulama Bağlantılarının etkileşim kurabilmesi için manifest dosyanızdaki tüm autoVerify
intent filtreleri kaydedilmelidir. Firebase, bu işlemi Dynamic Links alanlarınız için otomatik olarak işler ancak bunu, Dynamic Links alan adı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ı eklenmelidir.
Dynamic Links artık doğrudan uygulamanıza gönderilecek. Uygulama Bağlantıları intent filtresini eklediğiniz Etkinlik'te (Derin bağlantıları işleme bölümünde açıklandığı üzere) getDynamicLink()
numaralı telefonu arayarak derin bağlantıyı ve diğer Dynamic Link verilerini alabilirsiniz.
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.