Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

O Firebase Dinamik Linkler almak için oluşturduğunuz , uygulamanızda Dinamik Linkler SDK dahildir ve çağırmalıdır FirebaseDynamicLinks.getDynamicLink() uygulama yükleri Dinamik Link iletilen verileri almak için zaman yöntemi.

  1. Eğer henüz yapmadıysanız, Android projeye Firebase 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.

  2. Kullanılması Firebase Android Bom , senin modülü (uygulama düzeyinde) Gradle dosyası (genellikle Dinamik Linkler Android kütüphanesi için bağımlılık beyan app/build.gradle ).

    Dinamik bağlantılar Optimum deneyim için, tavsiye Google Analytics sağlayan sizin Firebase projesinde ve uygulamanızda Google Analytics'in Firebase SDK ekledi.

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:28.4.2')
    
        // Declare 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'
    }
    

    Kullanarak Firebase Android Bom , uygulamanızın her zaman Firebase Android kütüphanelerin uyumlu versiyonlarını kullanacak.

    (Alternatif) Bom kullanmadan Firebase kütüphane bağımlılıklarını beyan

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

    Eğer uygulamanızda birden Firebase kitaplıkları kullanırsanız, biz çok tüm versiyonlar uyumlu olmasını sağlar kütüphane sürümlerini yönetmek için Bom kullanmanızı öneririz olduğunu unutmayın.

    dependencies {
        // Declare 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:20.1.1'
        implementation 'com.google.firebase:firebase-analytics:19.0.2'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:28.4.2')
    
        // Declare 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'
    }
    

    Kullanarak Firebase Android Bom , uygulamanızın her zaman Firebase Android kütüphanelerin uyumlu versiyonlarını kullanacak.

    (Alternatif) Bom kullanmadan Firebase kütüphane bağımlılıklarını beyan

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

    Eğer uygulamanızda birden Firebase kitaplıkları kullanırsanız, biz çok tüm versiyonlar uyumlu olmasını sağlar kütüphane sürümlerini yönetmek için Bom kullanmanızı öneririz olduğunu unutmayın.

    dependencies {
        // Declare 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:20.1.1'
        implementation 'com.google.firebase:firebase-analytics-ktx:19.0.2'
    }
    
  3. In Firebase konsoluna , Dinamik Linkler bölümünü açın. Sizden istenirse hizmet şartlarını kabul edin.

Olduğu gibi düz derin bağlantıları , uygulamanız için derin bağlantılar kolları faaliyetlerine yeni bir niyet filtre eklemek gerekir. 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 basıldıktan sonra Dinamik Bağlantı verilerini alması için gereklidir. In 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, çağrı getDynamicLink() yöntemini:

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

Kotlin+KTX

Firebase.dynamicLinks
        .getDynamicLink(intent)
        .addOnSuccessListener(this) { 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) }

Sen çağırmalıdır getDynamicLink() bağlantı niyet kullanmaktan mevcut olsa bile, bağlantı tarafından başlatılan olabilir, her aktivitede getIntent().getData() . Arayan getDynamicLink() buna böylece veriler sadece uygulamanızın bir kez işlenir bu bağlantıyı ve berraklaşır, alır.

Normalde çağrı getDynamicLink() ana aktivitede yanı sıra linki maç niyet filtreler tarafından başlatılan herhangi bir faaliyet.

Analizleri kaydedin

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 karşılandığını kontrol edin:

  • Çağrı FirebaseDynamicLinks.getDynamicLink() uygulama giriş noktalarında:
    • Başlatıcı etkinlikleri. örneğin: action="android.intent.action.MAIN" , category="android.intent.category.LAUNCHER" .
    • Faaliyet giriş noktaları. örneğin: onStart() , onCreate() .
    • Derin bağlantı etkinlikleri.
  • Google Analytics'i kurun ve kullanın:
    • Google Analytics bağımlılığını dahil edin. Bu genellikle otomatik tarafından eklenen google-services Gradle eklentisi.
    • Dahil google-services.json yapılandırma dosyası uygulamanızda.
    • Çağrı FirebaseAnalytics.getInstance() çağırmadan önce FirebaseDynamicLinks.getDynamicLink() .

Android 6.0 (API seviyesi 23) ve üstü üzerinde, uygulama zaten kullanılarak yüklenir doğrudan Dinamik Linkler işlemek için uygulamasını ayarlayabilirsiniz Android Uygulaması Linkler .

İçinde projenize uygulamanız için SHA256 sertifika parmak izi eklendi emin olun Firebase konsoluna . Dynamic Links, Dynamic Links alan adınız için App Links web sitesi ilişkilendirmesinin kurulumunu üstlenir.

Olarak projenizin Dinamik Linkler etki ev sahipliği ayarı, Dinamik Linki idare edecek Aktivite için bir otomatik doğrulanmış niyet filtre ekle Firebase konsolunda bulunan . In 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>

O Not android:host derin bağlantıyla alanını Dinamik Linkler etki ayarlı değil edilmelidir.

Tüm autoVerify Manifest'inizde niyet filtreler App Linkler yapabilmeleri için kayıtlı olmalıdır. Firebase Dinamik Linkler alan adları için otomatik kolları bu, ancak açarak kontrol edebilirsiniz assetlinks.json dosyasını Dinamik Linkler alanda barındırılan:

https://YOUR_DOMAIN/.well-known/assetlinks.json
sizin Firebase uygulamalarınızın paket adlarının tamamı dahil edilmelidir.

Dinamik Bağlantılar artık doğrudan uygulamanıza gönderilecek. Sen arayarak derin bağlantıyı ve diğer dinamik bağlantı veri almak mümkün olacaktır getDynamicLink() (anlatıldığı gibi Etkinliğinizde için Uygulama Linkler amaç filtresini eklendi Kol derin bağlantılar ).

Not: Uygulama Bağlantılar üzerinden çağıran app kullanıcıyı doğrudan aldığından dolayı, Dynamic Link gerekli minimum versiyonunu alamayacağız. Uygulamayı bir Sonra bir gün, Dinamik Link'in asgari sürümü (karşılaştırmak gerekir getminimumappversion karşı) PackageInfo.versionCode ve kullanma gerekirse uygulamayı yükseltmek için kullanıcı yönlendirme getUpdateAppIntent .