Google, Siyah topluluklar için ırksal eşitliği ilerletmeye kararlıdır. Nasıl olduğunu gör.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

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

Oluşturduğunuz Firebase Dinamik Bağlantılarını almak için, uygulamanıza Dinamik Bağlantılar SDK'sını eklemeniz ve uygulamanız yüklendiğinde Dinamik Bağlantıya aktarılan 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ı kaydettirirken, SHA-1 imzalama anahtarınızı belirtin. Uygulama Bağlantıları kullanıyorsanız, SHA-256 anahtarınızı da belirtin.

  2. Proje düzeyindeki build.gradle dosyanızda, Google'ın Maven deposunu hem buildscript hem de tüm allprojects bölümlerine buildscript emin olun.
  3. Dinamik Bağlantılar Android kütüphanesinin bağımlılığını modülünüze (uygulama düzeyinde) Gradle dosyasına (genellikle app/build.gradle ) app/build.gradle .

    Dinamik Bağlantılarla en iyi deneyimi elde etmek için projenizde Google Analytics'i etkinleştirmenizi öneririz. Ayrıca, Analytics kurulumunun bir parçası olarak, uygulamanıza Analytics için Firebase SDK'sını eklemeniz gerekir.

    Java

    implementation 'com.google.firebase:firebase-dynamic-links:19.1.0'
    implementation 'com.google.firebase:firebase-analytics:17.4.4'

    Kotlin + ktx

    implementation 'com.google.firebase:firebase-dynamic-links-ktx:19.1.0'
    implementation 'com.google.firebase:firebase-analytics-ktx:17.4.4'
  4. 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 niyet filtresi eklemeniz gerekir. Dinamik Bağlantı, uygulamanız yüklüyse alan adınıza yönlendireceğinden, amaç filtresi alan adınızın derin bağlantılarını yakalamalıdır. Uygulamanız Play Store'dan yüklendikten / güncellendikten ve Devam düğmesine bir kez dokunduktan sonra Dinamik Bağlantı verilerini alması için bu 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 bir bağlantı içeren bir Dinamik Bağlantı açtıklarında, uygulamanız, bağlantıyı işlemek için bu niyet filtresiyle etkinliği başlatır.

Derin bağlantıyı almak için getDynamicLink() yöntemini çağırın:

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() . getDynamicLink() çağırmak bağlantıyı alır ve bu verileri uygulamanız tarafından yalnızca bir kez işlenecek şekilde temizler.

Normalde ana etkinlikte getDynamicLink() ve bağlantıyla eşleşen amaç filtreleri tarafından başlatılan tüm etkinlikleri getDynamicLink() .

Analitiği 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 sağlandığını kontrol edin:

  • Uygulama giriş noktalarınızda FirebaseDynamicLinks.getDynamicLink() arayın:
    • Başlatı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'i kurun ve kullanın:
    • Google Analytics bağımlılığını ekleyin. Bu genellikle google-services Gradle eklentisi tarafından otomatik olarak eklenir.
    • Uygulamanıza google-services.json yapılandırma dosyasını ekleyin.
    • Çağrı FirebaseAnalytics.getInstance() çağırmadan önce FirebaseDynamicLinks.getDynamicLink() .

Android 6.0 (API düzey 23) ve sonraki sürümlerde, uygulamanızı doğrudan Android Uygulama Bağlantıları'nı kullanarak yüklendiğinde Dinamik Bağlantıları işleyecek şekilde ayarlayabilirsiniz.

Firebase konsolundaki projenize uygulamanız için SHA256 sertifikası parmak izini eklediğinizden emin olun. Dinamik Bağlantılar, Dinamik Bağlantılar alanınız için Uygulama Bağlantıları web sitesi ilişkilendirmesini ayarlayacaktır.

Etkinliği, Dinamik Bağlantıyı işleyecek ve ana bilgisayarı Firebase konsolunda bulunduğu şekilde projenizin Dinamik Bağlantıları etki alanına ayarlayan otomatik olarak doğrulanmış bir niyet 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 adına değil, Dinamik Bağlantılar alanınıza ayarlanması gerektiğini unutmayın.

Uygulama Bağlantılarının devreye girmesi için bildiriminizdeki tüm autoVerify amaç filtrelerinin kaydedilmesi gerekir. Firebase bunu Dinamik Bağlantılar alanlarınız için otomatik olarak ele alır, ancak Dinamik Bağlantılar alan assetlinks.json barındırılan assetlinks.json dosyasını açarak bunu 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ı niyet filtresini eklediğiniz Etkinlik'te ( Derin bağlantıları işleme bölümünde açıklandığı gibi getDynamicLink() derin bağlantıyı ve diğer Dinamik Bağlantı verilerini elde edebilirsiniz.