Aby otrzymać utworzone przez siebie Linki dynamiczne Firebase , musisz umieścić w swojej aplikacji pakiet SDK Linków dynamicznych i podczas ładowania aplikacji wywołać metodę FirebaseDynamicLinks.getDynamicLink()
w celu pobrania danych z Linku dynamicznego.
Skonfiguruj Firebase i pakiet SDK Linków dynamicznych
Jeśli jeszcze tego nie zrobiłeś, dodaj Firebase do swojego projektu na Androida .
Podczas rejestracji aplikacji określ klucz podpisywania SHA-1. Jeśli korzystasz z łączy aplikacji, podaj również swój klucz SHA-256.
Korzystając z Firebase Android BoM , zadeklaruj zależność dla biblioteki Dynamic Links Android w pliku Gradle modułu (na poziomie aplikacji) (zwykle
app/build.gradle
).Aby zapewnić optymalne działanie Linków dynamicznych, zalecamy włączenie Google Analytics w projekcie Firebase i dodanie pakietu SDK Firebase dla Google Analytics do swojej aplikacji.
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:30.1.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' }
Korzystając z Firebase Android BoM , Twoja aplikacja będzie zawsze używać zgodnych wersji bibliotek Firebase Android.
(Alternatywnie) Zadeklaruj zależności biblioteki Firebase bez użycia BoM
Jeśli zdecydujesz się nie korzystać z BoM Firebase, musisz określić każdą wersję biblioteki Firebase w jej wierszu zależności.
Pamiętaj, że jeśli korzystasz z wielu bibliotek Firebase w swojej aplikacji, zdecydowanie zalecamy używanie BoM do zarządzania wersjami bibliotek, co zapewnia zgodność wszystkich wersji.
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.1.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' }
Korzystając z Firebase Android BoM , Twoja aplikacja będzie zawsze używać zgodnych wersji bibliotek Firebase Android.
(Alternatywnie) Zadeklaruj zależności biblioteki Firebase bez użycia BoM
Jeśli zdecydujesz się nie korzystać z BoM Firebase, musisz określić każdą wersję biblioteki Firebase w jej wierszu zależności.
Pamiętaj, że jeśli korzystasz z wielu bibliotek Firebase w swojej aplikacji, zdecydowanie zalecamy używanie BoM do zarządzania wersjami bibliotek, co zapewnia zgodność wszystkich wersji.
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' }
- W konsoli Firebase otwórz sekcję Linki dynamiczne . Zaakceptuj warunki korzystania z usługi, jeśli zostaniesz o to poproszony.
Dodaj filtr intencji dla precyzyjnych linków
Podobnie jak w przypadku zwykłych precyzyjnych linków , musisz dodać nowy filtr intencji do działania, które obsługuje precyzyjne linki w Twojej aplikacji. Filtr intencji powinien wykrywać precyzyjne linki w Twojej domenie, ponieważ link dynamiczny przekieruje do Twojej domeny, jeśli Twoja aplikacja jest zainstalowana. Jest to wymagane, aby Twoja aplikacja otrzymywała dane Dynamic Link po jej zainstalowaniu/zaktualizowaniu ze Sklepu Play i jednym dotknięciu przycisku Kontynuuj. W
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ą dynamiczny link z precyzyjnym linkiem do określonego schematu i hosta, Twoja aplikacja rozpocznie działanie z tym filtrem intencji, aby obsłużyć link.
Obsługa precyzyjnych linków
Aby otrzymać precyzyjny link, wywołaj metodę
getDynamicLink()
: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) }
Musisz wywołać
getDynamicLink()
w każdym działaniu, które może zostać uruchomione przez łącze, nawet jeśli łącze może być dostępne z intencji za pomocągetIntent().getData()
. WywołaniegetDynamicLink()
pobranie linku i wyczyszczenie danych, dzięki czemu aplikacja jest przetwarzana tylko raz.Zwykle wywołujesz
getDynamicLink()
w głównym działaniu, jak również we wszystkich działaniach uruchamianych przez filtry intencji, które pasują do łącza.Analiza rekordów
Następujące zdarzenia można automatycznie śledzić w Google Analytics i wyświetlać w konsoli Firebase.
-
dynamic_link_app_open
-
dynamic_link_first_open
-
dynamic_link_app_update
Aby zarejestrować te zdarzenia, musisz skonfigurować Google Analytics przed pobraniem precyzyjnego linku. Sprawdź, czy spełnione są następujące warunki:
- Wywołaj
FirebaseDynamicLinks.getDynamicLink()
w punktach wejścia aplikacji: - Działania Launchera. np.:
action="android.intent.action.MAIN"
,category="android.intent.category.LAUNCHER"
. - Punkty wejścia aktywności. np.:
onStart()
,onCreate()
. - Działania związane z precyzyjnymi linkami.
- Skonfiguruj i korzystaj z Google Analytics:
- Uwzględnij zależność od Google Analytics. Zwykle jest to automatycznie dodawane przez wtyczkę Gradle
google-services
. - Dołącz plik konfiguracyjny
google-services.json
do swojej aplikacji. - Wywołaj
FirebaseAnalytics.getInstance()
przed wywołaniemFirebaseDynamicLinks.getDynamicLink()
.
Obsługa linków dynamicznych za pomocą linków aplikacji
W systemie Android 6.0 (poziom interfejsu API 23) lub nowszym możesz skonfigurować swoją aplikację do obsługi Linków dynamicznych bezpośrednio, gdy Twoja aplikacja jest już zainstalowana, przy użyciu Linków aplikacji na Androida .
Upewnij się, że odcisk cyfrowy certyfikatu SHA256 dla Twojej aplikacji został dodany do projektu w konsoli Firebase . Dynamic Links zajmie się konfiguracją powiązania witryny z linkami aplikacji dla Twojej domeny Dynamic Links.
Dodaj automatycznie zweryfikowany filtr intencji do działania, które będzie obsługiwać łącze dynamiczne, ustawiając hosta na domenę linków dynamicznych projektu, tak jak w konsoli Firebase . W
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 domenę precyzyjnego linku.Wszystkie filtry intencji
autoVerify
w Twoim manifeście muszą być zarejestrowane, aby Linki do aplikacji działały. Firebase obsługuje to automatycznie dla Twoich domen Dynamic Links, ale możesz to sprawdzić, otwierając plikassetlinks.json
hostowany w Twojej domenie Dynamic Links:https://YOUR_DOMAIN/.well-known/assetlinks.json
Należy uwzględnić wszystkie nazwy pakietów aplikacji Firebase.Linki dynamiczne będą teraz wysyłane bezpośrednio do Twojej aplikacji. Będziesz mógł uzyskać precyzyjny link i inne dane Dynamic Link, wywołując
getDynamicLink()
w działaniu, do którego dodano filtr intencji Linki do aplikacji (zgodnie z opisem w sekcji Obsługa precyzyjnych linków ).Uwaga: ponieważ wywoływanie przez łącza aplikacji przenosi użytkownika bezpośrednio do aplikacji, łącze dynamiczne nie może uwzględniać wymaganej wersji minimalnej. Dlatego po otwarciu aplikacji musisz porównać minimalną wersję Dynamic Link ( getminimumappversion ) z PackageInfo.versionCode i przekierować użytkownika do aktualizacji aplikacji, jeśli jest to wymagane, za pomocą getUpdateAppIntent .
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2022-06-29 UTC.
[] []