Oluşturduğunuz Firebase Dynamic Links'i almak için Dynamic Links SDK'yı uygulamanıza dahil etmeniz ve uygulamanız yüklendiğinde Dynamic Link'te aktarılan verileri almak için FirebaseDynamicLinks.getDynamicLink()
yöntemini çağırmanız gerekir.
Firebase ve Dinamik Bağlantılar SDK'sını kurun
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üzeyinde) Gradle dosyanızda (genellikle
<project>/<app-module>/build.gradle
), Dynamic Links Android kitaplığı için bağımlılığı ekleyin. Kitaplık sürüm oluşturmayı kontrol etmek için Firebase Android BoM'yi 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'yı uygulamanıza eklemenizi öneririz.
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.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-ktx' implementation 'com.google.firebase:firebase-analytics-ktx' }
Firebase Android BoM'yi kullandığınızda, uygulamanız her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanır.
(Alternatif) BoM kullanmadan Firebase kitaplığı bağımlılıkları ekleyin
Firebase BoM'yi kullanmamayı seçerseniz, her bir 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ı kesinlikle öneririz.
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-ktx:21.1.0' implementation 'com.google.firebase:firebase-analytics-ktx:21.3.0' }
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.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.
(Alternatif) BoM kullanmadan Firebase kitaplığı bağımlılıkları ekleyin
Firebase BoM'yi kullanmamayı seçerseniz, her bir 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ı kesinlikle öneririz.
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.1.0' implementation 'com.google.firebase:firebase-analytics:21.3.0' }
- Firebase konsolunda Dinamik Bağlantılar bölümünü açın. Sizden istenirse 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 eklemelisiniz. Uygulamanız yüklüyse Dinamik Bağlantı alanınıza yönlendirme yapacağından, amaç filtresi alanınızın derin bağlantılarını yakalamalıdır. Bu, uygulamanızın Play Store'dan yüklendikten/güncellendikten ve Devam düğmesine bir kez dokunulduktan 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 bir 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önet
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()
kullanılarak niyetten mevcut olsa bile, bağlantı tarafından başlatılabilecek her aktivitede getDynamicLink()'i çağırmalısınız.getDynamicLink()
öğesinin çağrılması, bağlantıyı alır ve bu verileri siler, böylece uygulamanız tarafından yalnızca bir kez işlenir.Normalde ana aktivitede ve bağlantıyla eşleşen amaç filtreleri tarafından başlatılan tüm aktivitelerde
getDynamicLink()
öğesini çağırırsınız.Kayıt analitiği
Aşağıdaki olaylar, 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 sağlanıp sağlanmadığı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"
. - Aktivite giriş noktaları. örneğin:
onStart()
,onCreate()
. - Derin bağlantı faaliyetleri.
- 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. -
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 sonraki sürümlerde, Android Uygulama Bağlantılarını kullanarak uygulamanızı zaten yüklenmiş durumdayken doğrudan Dinamik Bağlantıları işleyecek şekilde ayarlayabilirsiniz.
Uygulamanız için SHA256 sertifika parmak izini Firebase konsolundaki projenize eklediğinizden emin olun. Dinamik Bağlantılar, Dinamik Bağlantılar alanınız için Uygulama Bağlantıları web sitesi ilişkilendirmesinin kurulumunu gerçekleştirecektir.
Ana bilgisayarı, Firebase konsolunda bulunduğu şekilde projenizin Dinamik Bağlantılar alanına ayarlayarak, Dinamik Bağlantıyı işleyecek olan Etkinliğe otomatik olarak doğrulanmış bir amaç filtresi ekleyin.
AndroidManifest.xml
dosyasında:<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 etki alanına değil, Dinamik Bağlantılar etki alanınıza ayarlanması gerektiğini unutmayın.Uygulama Bağlantılarının devreye girmesi 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ılanassetlinks.json
dosyasını açarak kontrol edebilirsiniz:https://YOUR_DOMAIN/.well-known/assetlinks.json
Tü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ı amaç filtresini eklediğiniz Etkinlikte
getDynamicLink()
öğesini çağırarak derin bağlantıyı ve diğer Dinamik Bağlantı verilerini elde edebileceksiniz ( Derin bağlantıları işleme bölümünde açıklandığı gibi).Not: Uygulama Bağlantıları yoluyla çağırma, kullanıcıyı doğrudan uygulamaya götürdüğünden, bir 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ı yükseltmesi için yönlendirmeniz gerekir.
Aksi belirtilmediği sürece bu sayfanın içeriği Creative Commons Atıf 4.0 Lisansı altında ve kod örnekleri Apache 2.0 Lisansı altında lisanslanmıştır. Ayrıntılı bilgi için Google Developers Site Politikaları'na göz atın. Java, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2023-06-10 UTC.
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"İhtiyacım olan bilgiler yok" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Çok karmaşık / çok fazla adım var" },{ "type": "thumb-down", "id": "outOfDate", "label":"Güncel değil" },{ "type": "thumb-down", "id": "translationIssue", "label":"Çeviri sorunu" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Örnek veya kod sorunu" },{ "type": "thumb-down", "id": "otherDown", "label":"Diğer" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Anlaması kolay" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Sorunumu çözdü" },{ "type": "thumb-up", "id": "otherUp", "label":"Diğer" }]