Aby otrzymać Firebase Dynamic Links, które
utworzonej przez siebie, musisz umieścić w aplikacji pakiet Dynamic Links SDK i wywołać metodę
Metoda FirebaseDynamicLinks.getDynamicLink()
, gdy aplikacja wczytuje się na
uzyskać dane przekazywane w Dynamic Link.
Skonfiguruj Firebase i pakiet SDK Dynamic Links
Jeśli jeszcze nie masz tego za sobą, dodaj Firebase do swojego projektu na Androida.
Podczas rejestracji aplikacji podaj klucz podpisywania SHA-1. Jeśli używasz App Links: podaj też klucz SHA-256.
-
w pliku Gradle (na poziomie aplikacji) modułu, (zwykle
<project>/<app-module>/build.gradle.kts
lub<project>/<app-module>/build.gradle
), dodaj zależność z biblioteką Dynamic Links na Androida. Zalecamy użycie metody Firebase Android BoM aby kontrolować obsługę wersji biblioteki.Aby zapewnić optymalne działanie usługi Dynamic Links, zalecamy włączam Google Analytics w projekcie Firebase i dodając do aplikacji pakiet SDK Firebase dla Google Analytics.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.2.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' }
Korzystając z narzędzia Firebase Android BoM, Twoja aplikacja zawsze używa zgodnych wersji bibliotek Firebase na Androida.
(Wersja alternatywna) Dodaj zależności biblioteki Firebase bez użycia komponentu BoM
Jeśli nie chcesz używać biblioteki Firebase BoM, musisz określić każdą wersję biblioteki Firebase w wierszu zależności.
Pamiętaj, że jeśli używasz wielu bibliotek Firebase w aplikacji, zalecamy korzystanie z BoM do zarządzania wersjami biblioteki. Dzięki temu wszystkie wersje są zgodne.
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:22.1.0' }
- W konsoli Firebase otwórz Dynamic Links . Jeśli pojawi się taka prośba, zaakceptuj warunki korzystania z usługi.
Dodawanie filtra intencji na potrzeby precyzyjnych linków
Tak jak
zwykłych precyzyjnych linków, musisz dodać nowy filtr intencji do działania, które obsługuje
precyzyjne linki do aplikacji. Filtr intencji powinien wychwytywać precyzyjne linki w domenie, ponieważ
Jeśli Twoja aplikacja jest zainstalowana, Dynamic Link przekierowuje do Twojej domeny. Jest to wymagane, aby aplikacja mogła:
otrzymuje dane aplikacji Dynamic Link po jej zainstalowaniu lub zaktualizowaniu ze Sklepu Play i jednym kliknięciem
Przycisk Dalej. W aplikacji 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żytkownik otworzą Dynamic Link z precyzyjnym linkiem do schematu i hosta określonego przez Ciebie, aplikacja rozpocząć aktywność za pomocą tego filtra intencji, aby obsłużyć link.
Obsługa precyzyjnych linków
Aby otrzymać precyzyjny link, wywołaj metodę getDynamicLink()
:
Kotlin+KTX
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); } });
W każdej aktywności musisz wywoływać użytkownika getDynamicLink()
, który może być
uruchamianych za pomocą linku, choć może on być dostępny z poziomu intencji,
za pomocą: getIntent().getData()
. Dzwonię pod getDynamicLink()
pobiera link i usuwa dane, tak aby zostały one przetworzone tylko raz
.
Normalnie w głównej aktywności dzwonisz również do użytkownika getDynamicLink()
jak wszystkie działania uruchomione przez filtry intencji, które pasują do linku.
Rejestrowanie statystyk
Poniższe zdarzenia mogą być automatycznie śledzone w Google Analytics i wyświetlane w Firebase.
dynamic_link_app_open
dynamic_link_first_open
dynamic_link_app_update
Aby zarejestrować te zdarzenia, musisz skonfigurować Google Analytics, zanim aby pobrać precyzyjny link. Sprawdź, czy są spełnione te warunki:
- Wywołaj
FirebaseDynamicLinks.getDynamicLink()
w punktach wejścia aplikacji: - Działania w Menu z aplikacjami. e.g.:
action="android.intent.action.MAIN"
,category="android.intent.category.LAUNCHER"
- Punkty wejścia aktywności. e.g.:
onStart()
,onCreate()
. - Aktywności z precyzyjnymi linkami.
- Konfigurowanie i używanie usługi Google Analytics:
- Uwzględnij zależność Google Analytics. Jest on zwykle dodawany automatycznie przez
Wtyczka do obsługi Gradle
google-services
. - Dołącz
google-services.json
plik konfiguracyjny w Twojej aplikacji. - Zanim zadzwonisz, zadzwoń pod numer
FirebaseAnalytics.getInstance()
FirebaseDynamicLinks.getDynamicLink()
Obsługa aplikacji Dynamic Links za pomocą linków aplikacji
W Androidzie 6.0 (poziom interfejsu API 23) i nowszych możesz skonfigurować aplikację, aby obsługiwała Dynamic Links bezpośrednio, gdy aplikacja jest już zainstalowana, za pomocą Linki aplikacji na Androida.
Sprawdź, czy do projektu dodano odcisk cyfrowy certyfikatu SHA256 dla aplikacji konsolę Firebase. Dynamic Links zajmie się konfigurowaniem powiązania z linkami aplikacji dla witryny w Twojej domenie Dynamic Links.
Dodaj do aktywności filtr intencji automatycznie weryfikowanych, który będzie obsługiwać: Dynamic Link, ustawiając wartość
w domenie Dynamic Links Twojego projektu jako host
znajdziesz ją 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 w polu android:host
należy ustawić domenę Dynamic Links, a nie domenę
precyzyjnego linku.
Aby można było korzystać z aplikacji, wszystkie filtry intencji (autoVerify
) w pliku manifestu muszą być zarejestrowane
Linki zachęcające do interakcji. Firebase obsługuje to automatycznie w przypadku Twoich domen Dynamic Links, ale możesz sprawdzić
Otwierając plik assetlinks.json
hostowany w Twojej domenie Dynamic Links:
https://YOUR_DOMAIN/.well-known/assetlinks.json
Aplikacja Dynamic Links będzie teraz przesyłana bezpośrednio do Twojej aplikacji. Będziesz mieć dostęp do precyzyjnego linku i innych
Dynamic Link za pomocą wywołania getDynamicLink()
w aktywności dodanej przez Ciebie w linkach aplikacji
filtr intencji do (jak opisano w
Obsługuj precyzyjne linki).
Uwaga: wywołanie linku aplikacji przenosi użytkownika bezpośrednio do aplikacji, Link dynamiczny nie obsługuje wymaganej minimalnej wersji. Uruchomienie aplikacji porównać minimalną wersję linku dynamicznego ( getminimumappversion) przeciwko PackageInfo.versionCode i w razie potrzeby przekierować użytkownika, aby uaktualnił aplikację, używając getUpdateAppIntent.