Android'de Firebase Dinamik Bağlantılarını Alın

Oluşturduğunuz Firebase Dinamik Bağlantıları almak için uygulamanıza Dinamik Bağlantılar SDK'sını eklemeniz ve uygulamanız yüklendiğinde Dinamik Bağlantı'da iletilen verileri almak için FirebaseDynamicLinks.getDynamicLink() yöntemini çağırmanız gerekir.

  1. Henüz yapmadıysanız Android projenize Firebase'i 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.

  2. Modülünüzde (uygulama düzeyi) Gradle dosyanızda (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle ), Dinamik Bağlantılar için bağımlılığı ekleyin Android için kütüphane. Kitaplık sürümlerini kontrol etmek için Firebase Android BoM'yi kullanmanızı öneririz.

    Dinamik Bağlantılarla en iyi deneyimi elde etmek için Firebase projenizde Google Analytics'i 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:32.7.3"))
    
        // 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'yi kullanmadan Firebase kitaplığı bağımlılıklarını ekleyin

    Firebase BoM'yi kullanmamayı tercih ederseniz her 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ı önemle tavsiye ettiğimizi unutmayın.

    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.2.0'
        implementation 'com.google.firebase:firebase-analytics:21.5.1'
    }
    
    Kotlin'e özgü bir kütüphane modülü mü arıyorsunuz? Ekim 2023'ten itibaren (Firebase BoM 32.5.0) hem Kotlin hem de Java geliştiricileri ana kütüphane modülüne güvenebilecekler (ayrıntılar için bu girişimle ilgili SSS'ye bakın).
  3. Firebase konsolunda Dinamik Bağlantılar bölümünü açın. İstenirse hizmet şartlarını kabul edin.

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 eklemeniz gerekir. Uygulamanız yüklüyse Dinamik Bağlantı alanınıza yönlendireceğinden amaç filtresinin alan adınızın derin bağlantılarını yakalaması gerekir. Bu, uygulamanızın Play Store'dan yüklendikten/güncellendikten ve Devam düğmesine bastıktan 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 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ı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() çağırmanız gerekir. getDynamicLink() çağrıldığında bağlantı alınır ve veriler temizlenir, böylece veriler uygulamanız tarafından yalnızca bir kez işlenir.

Normalde ana etkinlikte ve bağlantıyla eşleşen amaç filtreleri tarafından başlatılan tüm etkinliklerde getDynamicLink() öğesini çağırırsınız.

Analizleri kaydedin

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 derin bağlantıyı almadan önce Google Analytics'i yapılandırmanız gerekir. Aşağıdaki koşulların karşılandığı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" .
    • Etkinlik giriş noktaları. örneğin: onStart() , onCreate() .
    • Derin bağlantı etkinlikleri.
  • Google Analytics'i kurun ve kullanın:

Android 6.0 (API düzeyi 23) ve üzeri sürümlerde, uygulamanız zaten yüklü olduğunda Android Uygulama Bağlantıları'nı kullanarak uygulamanızı Dinamik Bağlantıları doğrudan işleyecek şekilde ayarlayabilirsiniz.

Uygulamanız için SHA256 sertifikası parmak izini Firebase konsolundaki projenize eklediğinizden emin olun. Dinamik Bağlantılar, Dinamik Bağlantılar alan adınız için Uygulama Bağlantıları web sitesi ilişkisinin kurulumunu gerçekleştirecektir.

Etkinliğe, Dinamik Bağlantıyı işleyecek, ana makineyi Firebase konsolunda bulunan projenizin Dinamik Bağlantılar alanına ayarlayacak otomatik olarak doğrulanmış bir amaç filtresi ekleyin. 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 derin bağlantınızın alanına değil, Dinamik Bağlantılar alanınıza ayarlanması gerektiğini unutmayın.

Uygulama Bağlantılarının devreye girebilmesi 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ılan assetlinks.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ı amacı filtresini eklediğiniz Etkinlikte (Derin bağlantıları işleme bölümünde açıklandığı gibi getDynamicLink() öğesini çağırarak derin bağlantıyı ve diğer Dinamik Bağlantı verilerini elde edebileceksiniz.

Not: Uygulama Bağlantıları aracılığıyla çağrılması kullanıcıyı doğrudan uygulamaya yönlendirdiğinden Dinamik Bağlantı gerekli minimum sürümü karşılayamaz. Dolayısıyla 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.