Android'de Firebase Dynamic Links'i alma

kullanıyorsanız, uygulamanıza Dynamic Links SDK'sını dahil etmeniz ve FirebaseDynamicLinks.getDynamicLink() yöntemini kullanarak uygulamanız Dinamik Bağlantı'da 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), ve Android için Dynamic Links kitaplığına yönelik bağımlılığı ekleyin. Şunu kullanmanızı öneririz: Firebase Android BoM Kitaplık'ta sürüm oluşturmayı kontrol etmek için

    Dinamik Bağlantılar ile optimum deneyim için Google Analytics'i 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.1.2"))
    
        // 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'u kullanarak, Uygulamanız her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanacaktır.

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

    Firebase BoM'yi kullanmamayı tercih ederseniz 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. Böylece, uyumlu olur.

    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.0.2'
    }
    
    .
    'nı inceleyin. 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 Dinamik Bağlantılar'ı 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ü Dinamik Bağlantı, uygulamanız yüklüyse alan adınıza yönlendirir. Bu, uygulamanızın şunları yapması için gereklidir: Dinamik Bağlantı verilerini Play Store'dan yüklendikten/güncellendikten sonra ve 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 dinamik bağlantıyı 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'te otomatik olarak izlenebilir ve Firebase konsolu.

  • dynamic_link_app_open
  • dynamic_link_first_open
  • dynamic_link_app_update

Bu etkinlikleri kaydetmek için başlamadan önce Google Analytics'i 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. ör. action="android.intent.action.MAIN", category="android.intent.category.LAUNCHER".
    • Etkinlik giriş noktaları. ör. onStart(), onCreate().
    • Derin bağlantı etkinlikleri.
  • Google Analytics'i kurun ve kullanın:

Android 6.0 (API düzeyi 23) ve daha yeni sürümlerde uygulamanızı Dynamic Links'i 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 konsolunu kullanın. Dynamic Links, Dynamic Links alan adınız.

Dinamik Bağlantı'yı işleyecek Etkinliğe otomatik doğrulanmış bir intent filtresi ekleyin. projenizin Dynamic Links alan adında ana makine olarak 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ının 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, bunu Dynamic Links alanlarınız için otomatik olarak yapar ancak Bunun için Dynamic Links alan adı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 Dinamik Bağlantı verileri 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.