Aby otrzymywać Firebase Dynamic Links, które
utworzyłeś, musisz dodać pakiet SDK Dynamic Links do swojej aplikacji i wywołać metodę
FirebaseDynamicLinks.getDynamicLink() podczas wczytywania aplikacji, aby
uzyskać dane przekazywane w Dynamic Link.
Konfiguracja Firebase i pakizacja Dynamic Links SDK
Jeśli jeszcze tego nie zrobisz, dodaj Firebase do swojego projektu aplikacji na Androida.
Podczas rejestracji aplikacji określ klucz podpisywania SHA-1. Jeśli używasz App Links, określ też klucz SHA-256.
-
W pliku Gradle modułu (na poziomie aplikacji) (zwykle
<project>/<app-module>/build.gradle.ktslub<project>/<app-module>/build.gradle), dodaj zależność od biblioteki Dynamic Links na Androida. Zalecamy używanie Firebase Android BoM do kontrolowania wersji biblioteki.Aby zapewnić optymalne działanie Dynamic Links, zalecamy włączenie Google Analytics w projekcie w Firebase i dodanie do aplikacji [pakiet] SDK Firebase dla Google Analytics.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.12.0")) // Add 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' }
Gdy korzystamy z Firebase Android BoM, aplikacja zawsze używa zgodnych wersji bibliotek Firebase na Androida.
(Alternatywa) Dodaj zależności biblioteki Firebase bez użycia BoM
Jeśli nie chcesz używać Firebase BoM, musisz określić wersję każdej biblioteki Firebase w wierszu zależności.
Pamiętaj, że jeśli w aplikacji używasz kilku bibliotek Firebase, zdecydowanie zalecamy używanie BoM do zarządzania wersjami bibliotek, co zapewnia zgodność wszystkich wersji.
dependencies { // Add 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:22.1.0' implementation 'com.google.firebase:firebase-analytics:23.2.0' }
- W konsoli Firebase otwórz sekcję Dynamic Links. Jeśli pojawi się odpowiedni komunikat, zaakceptuj warunki usługi.
Dodawanie filtra intencji dla precyzyjnych linków
Podobnie jak w przypadku
zwykłych precyzyjnych linków, musisz dodać nowy filtr intencji do aktywności, która obsługuje
precyzyjne linki w Twojej aplikacji. Filtr intencji powinien przechwytywać precyzyjne linki do Twojej domeny, ponieważ
Dynamic Link przekieruje do Twojej domeny, jeśli aplikacja jest zainstalowana. Jest to wymagane, aby aplikacja mogła
odbierać dane Dynamic Link po zainstalowaniu lub zaktualizowaniu ze Sklepu Play i kliknięciu
przycisku Dalej. W pliku 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>
Gdy użytkownicy otworzą Dynamic Link z precyzyjnym linkiem do schematu i hosta, które określisz, Twoja aplikacja uruchomi aktywność z tym filtrem intencji, aby obsłużyć link.
Obsługa precyzyjnych linków
Aby otrzymać precyzyjny link, wywołaj metodę getDynamicLink():
Kotlin
Firebase.dynamicLinks .getDynamicLink(intent) .addOnSuccessListener(this) { pendingDynamicLinkData: 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) }
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); } });
Musisz wywołać getDynamicLink() w każdej aktywności, która może zostać uruchomiona przez link, nawet jeśli link może być dostępny z intencji za pomocą getIntent().getData(). Wywołanie getDynamicLink() pobiera link i czyści te dane, aby były przetwarzane tylko raz przez Twoją aplikację.
Zwykle wywołujesz getDynamicLink() w głównej aktywności oraz w każdej aktywności uruchamianej przez filtry intencji pasujące do linku.
Rejestrowanie danych analitycznych
Te zdarzenia mogą być automatycznie śledzone w Google Analytics i wyświetlane w Firebase konsoli.
dynamic_link_app_opendynamic_link_first_opendynamic_link_app_update
Aby zarejestrować te zdarzenia, musisz skonfigurować Google Analytics zanim pobierzesz precyzyjny link. Sprawdź, czy spełnione są te warunki:
- Wywołaj
FirebaseDynamicLinks.getDynamicLink()w punktach wejścia aplikacji: - Aktywności programu uruchamiającego, np.:
action="android.intent.action.MAIN",category="android.intent.category.LAUNCHER". - Punkty wejścia aktywności, np.:
onStart(),onCreate(). - Aktywności precyzyjnych linków.
- Skonfiguruj i używaj Google Analytics:
- Uwzględnij zależność Google Analytics. Zwykle jest ona dodawana automatycznie przez
google-serviceswtyczkę Gradle. - Dołącz plik konfiguracyjny
google-services.jsondo swojej aplikacji. - Wywołaj
FirebaseAnalytics.getInstance()przed wywołaniemFirebaseDynamicLinks.getDynamicLink().
Obsługa Dynamic Links za pomocą App Links
Na Androidzie 6.0 (poziom interfejsu API 23) i nowszym możesz skonfigurować aplikację tak, aby obsługiwała Dynamic Links bezpośrednio, gdy jest już zainstalowana, za pomocą App Links.
Upewnij się, że w konsoli Firebase dodano odcisk cyfrowy certyfikatu SHA256 aplikacji do projektu w Firebase konsoli. Dynamic Links skonfiguruje powiązanie witryny z App Links dla Twojej domeny Dynamic Links.
Dodaj automatycznie zweryfikowany filtr intencji do aktywności, która będzie obsługiwać Dynamic Link, ustawiając
hosta na domenę Dynamic Links projektu, którą
znajdziesz w konsoli Firebase. W
pliku 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>Pamiętaj, że android:host musi być ustawiony na domenę Dynamic Links, a nie na domenę precyzyjnego linku.
Aby linki aplikacji autoVerify mogły się włączyć, w pliku manifestu muszą być zarejestrowane wszystkie filtry intencji. Firebase robi to automatycznie w przypadku domen Dynamic Links, ale możesz sprawdzić
to, otwierając plik assetlinks.json hostowany w domenie Dynamic Links:
https://YOUR_DOMAIN/.well-known/assetlinks.json
Dynamic Links będą teraz wysyłane bezpośrednio do Twojej aplikacji. Będziesz mieć możliwość uzyskania precyzyjnego linku i innych
Dynamic Link danych, wywołując getDynamicLink() w aktywności, do której dodano filtr intencji App Links (jak opisano w
Obsługa precyzyjnych linków).
Uwaga: ponieważ wywołanie za pomocą linków aplikacji przenosi użytkownika bezpośrednio do aplikacji, link dynamiczny nie może uwzględniać wymaganej minimalnej wersji. Gdy aplikacja zostanie otwarta, musisz porównać minimalną wersję linku dynamicznego ( getminimumappversion) z PackageInfo.versionCode i przekierować użytkownika do aktualizacji aplikacji, jeśli jest to wymagane, za pomocą getUpdateAppIntent.