Firebase Dynamic Links
oluşturduğunuz verileri 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ı 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üzün (uygulama düzeyinde) Gradle dosyasında (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üm oluşturmayı kontrol etmek için Firebase Android BoM kullanmanızı öneririz.Dynamic Links ile en iyi deneyimi elde etmek için Firebase projenizde Google Analytics'yi etkinleştirmenizi ve uygulamanıza Google Analytics için Firebase SDK'sını eklemenizi öneririz.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.16.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) Firebase kitaplığı bağımlılıklarını BoM kullanmadan ekleyin.
Firebase BoM kullanmamayı tercih ederseniz 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 sayede 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.5.0' }
- 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
Normal derin bağlantılarda olduğu gibi, uygulamanızın derin bağlantılarını işleyen etkinliğe yeni bir amaç filtresi eklemeniz gerekir. Uygulamanız yüklüyse Dynamic Link alanınıza yönlendireceğinden amaç filtresi, alanınızın derin bağlantılarını yakalamalıdır. Uygulamanızın, Play Store'dan yüklenip/güncellendikten ve Devam düğmesine dokunulduktan sonra Dynamic Link verilerini alabilmesi için bu gereklidir. AndroidManifest.xml
içinde:
<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 amaç filtresiyle başlatır.
Derin bağlantıları işleme
Derin bağlantıyı almak için getDynamicLink()
yöntemini çağırın:
Kotlin
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()
işlevini çağırmanız gerekir. getDynamicLink()
çağrısı, bağlantıyı alır ve verileri temizler. Böylece veriler yalnızca uygulamanız tarafından bir kez işlenir.
Normalde getDynamicLink()
işlevini ana etkinlikte ve bağlantıyla eşleşen amaç filtreleri tarafından başlatılan tüm etkinliklerde çağırırsınız.
Kayıt analizi
Aşağıdaki etkinlikler Google Analytics'da 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 yapılandırmanız gerekir. Aşağıdaki koşulların karşılandığını kontrol edin:
- Uygulamanızın giriş noktalarında
FirebaseDynamicLinks.getDynamicLink()
işlevini çağırın: - Başlatıcı etkinlikleri (ör. şunlar):
action="android.intent.action.MAIN"
,category="android.intent.category.LAUNCHER"
. - Etkinlik giriş noktaları (ör. aşağıdaki gibi):
onStart()
,onCreate()
. - Derin bağlantı etkinlikleri.
- Google Analytics'ı kurma ve 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()
adlı kişiyi aramadan önceFirebaseAnalytics.getInstance()
adlı kişiyi arayın.
Uygulama bağlantılarını kullanarak Dynamic Links işleme
Android 6.0 (API düzeyi 23) ve sonraki sürümlerde, uygulamanız zaten yüklüyken Dynamic Links işleyecek şekilde ayarlayabilirsiniz. Bunun için Android uygulama bağlantılarını kullanmanız gerekir.
Uygulamanızın SHA256 sertifika parmak izini Firebase konsolundaki projenize eklediğinizden emin olun. Dynamic Links, Dynamic Links alanınız için uygulama bağlantıları web sitesi ilişkilendirmesini ayarlamayı ele alır.
Dynamic Link işlevini işleyecek etkinliğe otomatik olarak doğrulanmış bir amaç filtresi ekleyin. Ana makineyi, projenizin Dynamic Links alanına Firebase konsolunda bulunduğu gibi 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
parametresinin, derin bağlantınızın alanı yerine Dynamic Links alanınıza ayarlanması gerektiğini unutmayın.
Uygulama bağlantılarının çalışması için manifestinizdeki tüm autoVerify
intent filtrelerinin kaydedilmesi gerekir. Firebase, Dynamic Links alanlarınız için bu işlemi otomatik olarak yapar ancak Dynamic Links alanınızda barındırılan assetlinks.json
dosyasını açarak bunu kontrol edebilirsiniz:
https://YOUR_DOMAIN/.well-known/assetlinks.json
Dynamic Links artık doğrudan uygulamanıza gönderilecek. Derin bağlantıyı ve diğer Dynamic Link verilerini, Uygulama Bağlantıları intent filtresini eklediğiniz etkinlikte getDynamicLink()
işlevini çağırarak alabilirsiniz (Derin bağlantıları işleme bölümünde açıklandığı gibi).
Not: Uygulama Bağlantıları üzerinden çağırma işlemi 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.