Google is committed to advancing racial equity for Black communities. See how.
This page was translated by the Cloud Translation API.
Switch to English

Erhalten Sie dynamische Firebase-Links auf Android

Um die von Ihnen erstellten Firebase Dynamic Links zu erhalten, müssen Sie das Dynamic Links SDK in Ihre App aufnehmen und beim FirebaseDynamicLinks.getDynamicLink() Ihrer App die FirebaseDynamicLinks.getDynamicLink() -Methode aufrufen, um die Daten in den Dynamic Link zu übertragen.

  1. Wenn Sie dies noch nicht getan haben, fügen Sie Firebase zu Ihrem Android-Projekt hinzu .

    Geben Sie bei der Registrierung Ihrer App Ihren SHA-1-Signaturschlüssel an. Wenn Sie App-Links verwenden, geben Sie auch Ihren SHA-256-Schlüssel an.

  2. Deklarieren Sie mithilfe der Firebase Android BoM die Abhängigkeit für die Dynamic Links Android-Bibliothek in der Gradle-Datei Ihres Moduls (App-Ebene) (normalerweise app/build.gradle ).

    Für eine optimale Erfahrung mit dynamischen Links empfehlen wir , Google Analytics in Ihrem Projekt zu aktivieren . Außerdem müssen Sie im Rahmen der Einrichtung von Analytics Ihrer App das Firebase SDK für Google Analytics hinzufügen.

    Java

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

    Bei Verwendung der Firebase Android BoM verwendet Ihre App immer kompatible Versionen der Firebase Android-Bibliotheken.

    (Alternative) Deklarieren Sie Firebase-Bibliotheksabhängigkeiten, ohne die Stückliste zu verwenden

    Wenn Sie die Firebase-Stückliste nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in ihrer Abhängigkeitszeile angeben.

    Wenn Sie mehrere Firebase-Bibliotheken in Ihrer App verwenden, empfehlen wir dringend, die BoM zum Verwalten von Bibliotheksversionen zu verwenden, um sicherzustellen, dass alle Versionen kompatibel sind.

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

    Kotlin + KTX

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

    Bei Verwendung der Firebase Android BoM verwendet Ihre App immer kompatible Versionen der Firebase Android-Bibliotheken.

    (Alternative) Deklarieren Sie Firebase-Bibliotheksabhängigkeiten, ohne die Stückliste zu verwenden

    Wenn Sie die Firebase-Stückliste nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in ihrer Abhängigkeitszeile angeben.

    Wenn Sie mehrere Firebase-Bibliotheken in Ihrer App verwenden, empfehlen wir dringend, die Stückliste zum Verwalten von Bibliotheksversionen zu verwenden, um sicherzustellen, dass alle Versionen kompatibel sind.

    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:19.1.1'
        implementation 'com.google.firebase:firebase-analytics-ktx:18.0.2'
    }
    
  3. Öffnen Sie in der Firebase-Konsole den Abschnitt Dynamische Links . Akzeptieren Sie die Nutzungsbedingungen, wenn Sie dazu aufgefordert werden.

Wie bei einfachen Deep Links müssen Sie der Aktivität, die Deep Links für Ihre App verarbeitet, einen neuen Absichtsfilter hinzufügen. Der Absichtsfilter sollte Deep Links Ihrer Domain abfangen, da der Dynamic Link zu Ihrer Domain umleitet, wenn Ihre App installiert ist. Dies ist erforderlich, damit Ihre App die Dynamic Link-Daten empfängt, nachdem sie im Play Store installiert / aktualisiert wurden und Sie auf die Schaltfläche Weiter tippen. 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>

Wenn Benutzer einen dynamischen Link mit einem Deep Link zu dem von Ihnen angegebenen Schema und Host öffnen, startet Ihre App die Aktivität mit diesem Absichtsfilter, um den Link zu verarbeiten.

Rufen Sie die Methode getDynamicLink() auf, um den Deep Link zu erhalten:

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

Sie müssen getDynamicLink() in jeder Aktivität aufrufen, die möglicherweise über den Link gestartet wird, obwohl der Link möglicherweise über die Absicht mit getIntent().getData() verfügbar ist getIntent().getData() . Durch Aufrufen von getDynamicLink() der Link abgerufen und diese Daten getDynamicLink() , sodass sie von Ihrer App nur einmal verarbeitet werden.

Normalerweise rufen Sie getDynamicLink() in der Hauptaktivität sowie alle Aktivitäten auf, die von Absichtsfiltern gestartet werden, die dem Link entsprechen.

Analyse aufzeichnen

Die folgenden Ereignisse können in Google Analytics automatisch verfolgt und in der Firebase-Konsole angezeigt werden.

  • dynamic_link_app_open
  • dynamic_link_first_open
  • dynamic_link_app_update

Um diese Ereignisse zu registrieren, müssen Sie Google Analytics konfigurieren, bevor Sie den Deep Link abrufen. Überprüfen Sie, ob die folgenden Bedingungen erfüllt sind:

  • Rufen Sie FirebaseDynamicLinks.getDynamicLink() in Ihren App-Einstiegspunkten auf:
    • Launcher-Aktivitäten. Beispiel: action="android.intent.action.MAIN" , category="android.intent.category.LAUNCHER" .
    • Aktivitätseinstiegspunkte. Beispiel: onStart() , onCreate() .
    • Deep Link-Aktivitäten.
  • Einrichten und Verwenden von Google Analytics:
    • Schließen Sie die Google Analytics-Abhängigkeit ein. Dies wird normalerweise automatisch vom Gradle-Plugin der google-services hinzugefügt.
    • Fügen Sie die Konfigurationsdatei google-services.json in Ihre App ein.
    • Rufen Sie FirebaseAnalytics.getInstance() vor dem Aufruf FirebaseDynamicLinks.getDynamicLink() .

Unter Android 6.0 (API-Stufe 23) und höher können Sie Ihre App so einrichten, dass sie dynamische Links direkt verarbeitet, wenn Ihre App bereits mithilfe von Android App Links installiert ist.

Stellen Sie sicher, dass Sie den SHA256-Zertifikatfingerabdruck für Ihre App zu Ihrem Projekt in der Firebase-Konsole hinzugefügt haben. Dynamic Links übernimmt das Einrichten der App Links-Website-Zuordnung für Ihre Dynamic Links-Domain.

Fügen Sie der Aktivität, die den dynamischen Link verarbeitet, einen automatisch überprüften Absichtsfilter hinzu, und setzen Sie den Host auf die Domäne "Dynamische Links" Ihres Projekts, wie sie in der Firebase-Konsole zu finden ist . In der 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>

Beachten Sie, dass der android:host auf Ihre Dynamic Links-Domain und nicht auf die Domain Ihres Deep Links eingestellt sein muss.

Alle autoVerify Absichtsfilter in Ihrem Manifest müssen registriert sein, damit App-Links autoVerify . Firebase übernimmt dies automatisch für Ihre Dynamic Links-Domains. Sie können dies jedoch überprüfen, indem Sie die Datei assetlinks.json , die auf Ihrer Dynamic Links-Domain gehostet wird:

https://YOUR_DOMAIN/.well-known/assetlinks.json
Alle Paketnamen Ihrer Firebase-Apps sollten enthalten sein.

Dynamische Links werden jetzt direkt an Ihre App gesendet. Sie können den Deep Link und andere Dynamic Link-Daten getDynamicLink() indem Sie getDynamicLink() in der Aktivität aufrufen, zu der Sie den App Links-Absichtsfilter hinzugefügt haben (wie unter Behandeln von Deep Links beschrieben ).