Android'de Firebase Dynamic Links'i alma

Firebase Dynamic Links almak için oluşturduğunuza göre, uygulamanıza Dynamic Links SDK'sını eklemeniz ve FirebaseDynamicLinks.getDynamicLink() yöntemini kullanarak uygulamanız Dynamic Link içinde iletilen verileri alın.

  1. Henüz yapmadıysanız Firebase'i Android projenize ekleyin.

    Uygulamanızı kaydederken SHA-1 imzalama anahtarınızı belirtin. Şunu kullanıyorsanız: App Links'i açın ve SHA-256 anahtarınızı belirtin.

  2. Modül (uygulama düzeyinde) Gradle dosyanızda (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle), Android için Dynamic Links kitaplığına bağımlılığı ekleyin. Şunu kullanmanızı öneririz: Firebase Android BoM Kitaplık'ta sürüm oluşturmayı kontrol etmek için

    En iyi Dynamic Links deneyimi için şunları öneririz: Google Analytics özelliğini etkinleştirme Firebase projenize ekleyin ve uygulamanıza Google Analytics için Firebase SDK'sını ekleyin.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:33.2.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 her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanacaktır.

    (Alternatif) Firebase kitaplığı bağımlılıklarını kullanmadan BoM

    Firebase BoM kullanmamayı seçerseniz her Firebase kitaplığı sürümünü belirtmeniz gerekir değerini alır.

    Uygulamanızda birden çok Firebase kitaplığı kullanıyorsanız, kitaplık sürümlerini yönetmek için BoM kullanmanızı öneririz. Bu, tüm sürümlerin uyumlu olduğundan emin olun.

    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.1.0'
    }
    Kotlin'e özel bir kitaplık modülü mü arıyorsunuz? Başlamak için kalan süre: Ekim 2023 (Firebase BoM 32.5.0), hem Kotlin hem de Java geliştiricileri (ayrıntılar için bkz. Bu girişimle ilgili SSS).
  3. Firebase konsolunda Dynamic Links uygulamasını açın bölümüne bakın. İstendiğinde hizmet şartlarını kabul edin.

olduğu gibi düz derin bağlantılara yer veriyorsanız, bu bağlantıları işleyen etkinliğe yeni bir intent filtresi Derin bağlantılar. Intent filtresi, alanınızın derin bağlantılarını yakalamalıdır çünkü Uygulamanız yüklüyse Dynamic Link sizi alan adınıza yönlendirecek. Bu, uygulamanızın şunları yapması için gereklidir: Dynamic Link verilerini Play Store'dan yükledikten/güncelledikten sonra ve bir dokunuşla alın Devam düğmesi. 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 Dynamic Link sayfasını açtığında uygulamanız Bağlantıyı işlemek için bu intent filtresiyle etkinliği başlatın.

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);
            }
        });

İlginizi çekebilecek her etkinlikte getDynamicLink() bağlantı amacıyla başlatılsa da getIntent().getData() kullanılıyor. getDynamicLink() aranıyor bağlantıyı alır ve bu verileri temizler. Böylece veriler, uygulamasını indirin.

Normalde getDynamicLink() adlı kişiyi ana etkinlikte de ararsınız bağlantıyla eşleşen intent filtreleri tarafından başlatılan tüm etkinlikler gibi.

Analizleri kaydet

Aşağıdaki etkinlikler Google Analytics üzerinde otomatik olarak izlenebilir ve Firebase konsolu.

  • dynamic_link_app_open
  • dynamic_link_first_open
  • dynamic_link_app_update

Bu etkinlikleri kaydetmek için uygulamadan önce Google Analytics uygulamasını yapılandırmanız gerekir derin bağlantıyı alın. 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. e.g.: action="android.intent.action.MAIN", category="android.intent.category.LAUNCHER".
    • Etkinlik giriş noktaları. e.g.: onStart(), onCreate().
    • Derin bağlantı etkinlikleri.
  • Google Analytics özelliğini kurun ve kullanın:

Android 6.0 (API düzeyi 23) ve sonraki sürümlerde uygulamanızı Dynamic Links işleyecek şekilde ayarlayabilirsiniz öğesini kullanarak doğrudan uygulamanız zaten yüklendiğinde Android Uygulama Bağlantıları.

Uygulamanız için SHA256 sertifika parmak izini Firebase konsolunda bulabilirsiniz. Uygulama Bağlantıları web sitesi ilişkilendirmesinin kurulumu Dynamic Links tarafından gerçekleştirilecek. Dynamic Links alanınız.

Dynamic Link ayarını işleyecek Etkinliğe otomatik doğrulanmış bir intent filtresi ekleyin. projenizin Dynamic Links alan adına barındırmak için Firebase konsolunda bulunur. İçinde 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 öğesinin, alan adına değil, Dynamic Links alan adınıza ayarlanması gerektiğini unutmayın derin bağlantınızın.

Uygulama için manifest dosyanızdaki tüm autoVerify intent filtreleri kaydedilmelidir. Etkileşime geçme bağlantıları. Firebase, Dynamic Links alanlarınız için bunu otomatik olarak işler ancak kontrol edebilirsiniz Bunun için Dynamic Links alanınızda barındırılan assetlinks.json dosyasını açın:

https://YOUR_DOMAIN/.well-known/assetlinks.json
Tüm Firebase uygulamalarınızın paket adlarının eklenmesi gerekir.

Dynamic Links artık doğrudan uygulamanıza gönderilecek. Derin bağlantıyı ve diğer Uygulama Bağlantılarını eklediğiniz Etkinlik'te getDynamicLink() numaralı telefonu arayarak Dynamic Link veri intent filtresine (bkz. Derin bağlantıları işleyin).

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şılayamıyor. Uygulama açıldığında, Dinamik Bağlantının minimum sürümünü ( getminimumappversion) önceindeki PackageInfo.versionCode ve gerekirse kullanarak kullanıcıyı uygulamayı yükseltmeye yönlendirir getUpdateAppIntent'i seçin.