Android'de Firebase Dynamic Links'i alma

Oluşturduğunuz Firebase Dynamic Links öğesini 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.

  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. Kitaplık sürümlendirmesini kontrol etmek için Firebase Android BoM simgesini kullanmanızı öneririz.

    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.5.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) BoM

    Firebase BoM kullanmamayı seçerseniz her Firebase kitaplık sürümünü bağımlılık satırında belirtmeniz gerekir.

    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.2'
    }
    Kotlin'e özgü 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 bölümünü açı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'te:

<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() çağrısı, bağlantıyı alır ve bu verileri temizler. Böylece, uygulamanız tarafından yalnızca bir kez işlenir.

Genellikle ana etkinlikte ve bağlantıyla eşleşen intent filtreleri tarafından başlatılan tüm etkinliklerde getDynamicLink() çağrılır.

Kayıt analizleri

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 başlamadan ö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:
    • Başlatıcı etkinlikleri. Ör.: action="android.intent.action.MAIN" category="android.intent.category.LAUNCHER".
    • Etkinlik giriş noktaları. Ör.: onStart(), onCreate().
    • Derin bağlantı etkinlikleri.
  • Google Analytics'ü kurup kullanma:

Android 6.0 (API düzeyi 23) ve sonraki sürümlerde, Android Uygulama Bağlantıları'nı kullanarak uygulamanızı, Dynamic Links uygulamanız zaten yüklüyken doğrudan işlemleri yürütecek şekilde ayarlayabilirsiniz.

Uygulamanızın SHA256 sertifika parmak izini Firebase konsolunda projenize eklediğinizden emin olun. 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. AndroidManifest.xml'te:

<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 değerinin, derin bağlantınızın alanı yerine Dynamic Links alanınıza ayarlanması gerektiğini unutmayın.

Uygulama bağlantılarının etkinleşmesi için manifest'inizdeki tüm autoVerify intent filtrelerinin kayıtlı olması gerekir. Firebase, bu işlemi Dynamic Links alanlarınız için otomatik olarak yapar ancak Dynamic Links alanınızda barındırılan assetlinks.json dosyasını açarak bu durumu kontrol edebilirsiniz:

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

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ılma, kullanıcıyı doğrudan uygulamaya yönlendirdiğinden dinamik bağlantılar, gerekli minimum sürümü karşılayamaz. Bu nedenle, uygulama açıldığında 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.