Oluşturduğunuz Firebase Dynamic Links değerini almak için Dynamic Links SDK'sını uygulamanıza eklemeniz ve uygulamanız yüklendiğinde FirebaseDynamicLinks.getDynamicLink() yöntemini çağırarak Dynamic Link içinde iletilen verileri almanız gerekir.
Firebase'i ve Dynamic Links SDK'sını kurma
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.ktsveya<project>/<app-module>/build.gradle) Android için Dynamic Links kitaplığına olan bağımlılığı ekleyin. Kitaplık sürümünü kontrol etmek için Firebase Android BoM kullanmanızı öneririz.Dynamic Links ile en iyi deneyimi yaşamak için Firebase projenizde Google Analytics özelliğini 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:35.0.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 kullanarak uygulamanızın her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanmasını sağlayabilirsiniz.
(Alternatif) BoM kullanmadan Firebase kitaplığı bağımlılıklarını ekleme
Firebase BoM kullanmamayı tercih ederseniz her Firebase kitaplığı sürümünü kendi 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ını sağlayabilirsiniz.
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:24.0.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
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üklüyse Dynamic Link, alanınıza yönlendirme yapacağından intent filtresi alanınızın derin bağlantılarını yakalamalıdır. Bu, uygulamanızın Play Store'dan yüklenip/güncellenip "Devam" düğmesine dokunulduktan sonra Dynamic Link 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 makineye derin bağlantı içeren bir Dynamic Link açtığında uygulamanız, bağlantıyı işlemek için bu intent filtresiyle etkinliği 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 intent'ten kullanılabilir olsa bile bağlantı tarafından başlatılabilecek her etkinlikte getDynamicLink() yöntemini çağırmanız gerekir. getDynamicLink() çağrıldığında bağlantı alınır ve bu veriler temizlenir. Böylece veriler uygulamanız tarafından yalnızca bir kez işlenir.
Normalde getDynamicLink() yöntemini ana etkinlikte ve bağlantıyla eşleşen intent filtreleri tarafından başlatılan tüm etkinliklerde çağırırsınız.
Kayıt analizleri
Aşağıdaki etkinlikler Google Analytics uygulamasında otomatik olarak izlenebilir ve Firebase konsolunda gösterilebilir.
dynamic_link_app_opendynamic_link_first_opendynamic_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ığından emin olun:
- Uygulama giriş noktalarınızda
FirebaseDynamicLinks.getDynamicLink()yöntemini çağırı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 uygulamasını kurma ve kullanma:
- Google Analytics bağımlılığını ekleyin. Bu genellikle
google-servicesGradle eklentisi tarafından otomatik olarak eklenir. google-services.jsonyapılandırma dosyasını uygulamanıza ekleyin.FirebaseDynamicLinks.getDynamicLink()numarasını aramadan önceFirebaseAnalytics.getInstance()numarasını arayın.
Uygulama Bağlantıları'nı kullanarak Dynamic Links bağlantılarını işleme
Android 6.0 (API düzeyi 23) ve sonraki sürümlerde, uygulamanız zaten yüklüyse Android Uygulama Bağlantıları'nı kullanarak uygulamanızı Dynamic Links bağlantılarını doğrudan işleyecek şekilde ayarlayabilirsiniz.
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 ayarlayacak.
Dynamic Link işlemini gerçekleştirecek etkinliğe otomatik olarak doğrulanmış bir intent filtresi ekleyin ve ana makineyi projenizin Dynamic Links alanına Firebase konsolunda bulunduğu şekilde ayarlayın. AndroidManifest.xml
bölümünde:
<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, Dynamic Links alanınıza ayarlanmalıdır.
Uygulama Bağlantıları'nın devreye girmesi için manifestinizdeki tüm autoVerify intent filtrelerinin kayıtlı olması gerekir. Firebase, Dynamic Links alanlarınız için bu işlemi otomatik olarak gerçekleştirir 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. Uygulama Bağlantıları intent filtresini eklediğiniz etkinlikte getDynamicLink() yöntemini ç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ı üzerinden çağrıldığında kullanıcı doğrudan uygulamaya yönlendirildiğinden, Dinamik Bağlantı gerekli minimum sürümü karşılayamaz. Bu nedenle, uygulama açıldıktan sonra Dynamic Link'in minimum sürümünü ( getminimumappversion) PackageInfo.versionCode ile karşılaştırmanız ve gerekirse getUpdateAppIntent kullanarak kullanıcıyı uygulamayı yeni sürüme geçirmeye yönlendirmeniz gerekir.