Google is committed to advancing racial equity for Black communities. See how.
Diese Seite wurde von der Cloud Translation API übersetzt.
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. build.gradle in Ihrer build.gradle Datei auf Projektebene sicher, dass das Maven-Repository von Google sowohl in Ihrem buildscript als auch in Ihrem allprojects Abschnitt enthalten ist.
  3. Fügen Sie die Abhängigkeit für die Dynamic Links Android-Bibliothek zu Ihrer Gradle-Datei auf Modulebene (App-Ebene) hinzu (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 das Firebase SDK für Analytics zu Ihrer App hinzufügen.

    Java

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

    Kotlin + KTX

    implementation 'com.google.firebase:firebase-dynamic-links-ktx:19.1.0'
    implementation 'com.google.firebase:firebase-analytics-ktx:17.5.0'
  4. Ö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 bei Installation Ihrer App zu Ihrer Domain umleitet. 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" .
    • Einstiegspunkte für Aktivitäten. 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 assetlinks.json die in Ihrer Dynamic Links-Domain gehostete Datei assetlinks.json öffnen:

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