Check out what’s new from Firebase at Google I/O 2022. Learn more

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ı kaydettikten zaman, SHA-1 imzalama anahtarı belirtin. App Linkler kullanırsanız, ayrıca SHA-256 anahtarı 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:30.0.1')
    
        // 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

    Eğer Firebase Bom kullanmamayı seçerseniz, onun bağımlılık doğrultusunda her Firebase kitaplığı sürümü belirtmelisiniz.

    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:21.0.1'
        implementation 'com.google.firebase:firebase-analytics:21.0.0'
    }
    

    Kotlin+KTX

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

    Eğer Firebase Bom kullanmamayı seçerseniz, onun bağımlılık doğrultusunda her Firebase kitaplığı sürümü belirtmelisiniz.

    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:21.0.1'
        implementation 'com.google.firebase:firebase-analytics-ktx:21.0.0'
    }
    
  3. In Firebase konsoluna , Dinamik Linkler bölümünü açın. Bunu yapmak için istendiğinde 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ın yüklüyse Dynamic Link alanınıza yönlendirir çünkü amaç filtresi, adınızın derin bağlantıları yakalamak gerekir. Bu / yüklü Play Store'da Devam butonuna biri musluklardan güncellendikten sonra dinamik bağlantı verileri almak için uygulamanız 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ın belirttiğiniz şeması ve ana bilgisayara, derin bağlantılı Dinamik Linki açtığınızda, uygulaması bağlantısı işlemek için bu niyet filtreli aktiviteyi başlayacaktı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.

Tutanak analitik

Aşağıdaki olaylar otomatik olarak Google Analytics izlenir ve Firebase konsolunda gösterilebilir.

  • dynamic_link_app_open
  • dynamic_link_first_open
  • dynamic_link_app_update

Bu olayları kaydetmek için, size derin bağlantı almak önce Google Analytics yapılandırmanız gerekir. Kontrol aşağıdaki şartlar yerine getirildiği:

  • Çağrı FirebaseDynamicLinks.getDynamicLink() uygulama giriş noktalarında:
    • Fırlatıcı faaliyetleri. örneğin: action="android.intent.action.MAIN" , category="android.intent.category.LAUNCHER" .
    • Etkinlik giriş noktaları. örneğin: onStart() , onCreate() .
    • Derin bağlantı faaliyetleri.
  • Google Analytics kurun ve kullanın:
    • Google Analytics, bağımlılık ekleyin. 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 . Dinamik Bağlantılar Dinamik Linkler etki App Linkler web sitesi dernek kurma işleyecektir.

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 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önderilecektir. 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 .