Ten przewodnik po migracji koncentruje się na korzystaniu z linków aplikacji i uniwersalnych linków oraz na opcjonalnie korzystaniu z Hostingu Firebase do hostowania plików powiązań z witryną aplikacji.
Ta migracja zastępuje te funkcje Linków dynamicznych Firebase:
Cecha | Linki dynamiczne Firebase | Linki aplikacji / linki uniwersalne |
---|---|---|
Kierowanie użytkowników do sklepu odpowiedniego dla danego urządzenia za pomocą jednego kliknięcia linku | ★ | |
Zapewnij użytkownikom kontynuację po pobraniu i zainstalowaniu aplikacji za pomocą odroczonego precyzyjnego linku | ★ | |
Zapewnij użytkownikom wrażenia kontekstowe dzięki treściom z precyzyjnymi linkami (jeśli są już zainstalowane) | ||
Przesyłanie danych analitycznych związanych ze zdarzeniami kliknięcia linku dynamicznego | ||
Umożliwia tworzenie krótkich adresów URL linków |
Jeśli do przeprowadzenia migracji potrzebujesz innych funkcji linków dynamicznych Firebase, które nie są obsługiwane w tym przewodniku, zapoznaj się z innymi scenariuszami migracji w dokumentacji wycofywania linków dynamicznych – najczęstsze pytania.
Załóżmy, że masz link dynamiczny Firebase, który wygląda tak:
Przykład linku dynamicznego | |
---|---|
Nazwa połączenia | Witamy w example.com |
Precyzyjny link | https://example.web.app/welcome |
Aplikacja na Androida | com.example.android |
Aplikacja Apple | com.example.ios |
Długi link dynamiczny | https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos |
Krótki link dynamiczny | https://example.page.link/m9Mm |
Ten przewodnik po migracji ma zastąpić Linki dynamiczne Firebase w ten sposób:
https://example.page.link/m9Mm
W przypadku precyzyjnych linków aplikacji i uniwersalnych linków wygląda to tak:
https://your-project-domain.web.app/welcome
Pamiętaj, że precyzyjny link aplikacji lub uniwersalny link zapewni użytkownikom te informacje:
- Precyzyjny link, który użytkownik może kliknąć, aby otworzyć aplikację, gdy jest już zainstalowana
- to ciąg dalszy ścieżki użytkownika, który prowadzi go do określonej części aplikacji po jej uruchomieniu.
Jednak precyzyjny link aplikacji lub precyzyjny link nie będzie dawać użytkownikom takich efektów (które wcześniej dotyczyły Linków dynamicznych Firebase):
- Kierowanie użytkowników do sklepu, w którym mogą pobrać i zainstalować aplikację na danym urządzeniu
- zapewnia kontynuację ścieżki użytkownika po pobraniu, zainstalowaniu i otwarciu aplikacji,
Zwróć uwagę na różnice w działaniu i funkcjonalności tych linków aplikacji i linków uniwersalnych w porównaniu z Linkami dynamicznymi Firebase w tabeli powyżej.
Zanim zaczniesz
Linki dynamiczne Firebase wykorzystują linki aplikacji (na Androidzie) i linki uniwersalne (na iOS) we własnej implementacji bazowej, aby umożliwić działanie precyzyjnych linków już po zainstalowaniu aplikacji.
Z tego przewodnika dowiesz się, jak utworzyć własne linki do aplikacji i uniwersalne linki przy użyciu Hostingu Firebase, aby zastąpić tę część funkcji zapewnianej przez Linki dynamiczne Firebase podczas przenoszenia Linków dynamicznych Firebase do nowego rozwiązania do migracji linków aplikacji lub linków uniwersalnych.
Aby przeprowadzić migrację, musisz podać te informacje:
- Linki dynamiczne Firebase, które chcesz przenieść
- Parametry adresu URL precyzyjnych linków uwzględnione w linkach dynamicznych
- Domena, której planujesz użyć zamiast poprzedniej domeny Linków dynamicznych Firebase (w stosownych przypadkach)
Aby wyeksportować istniejące metadane linków i uzyskać informacje wymienione powyżej, możesz skorzystać z przewodnika po eksportowaniu metadanych linków dynamicznych.
Omówienie etapów migracji
Udostępnij nową domenę (jeśli jeszcze jej nie masz), aby hostować pliki konfiguracji linku aplikacji lub uniwersalnego linku za pomocą Hostingu Firebase.
Utwórz pliki konfiguracji linku aplikacji lub uniwersalnego linku i przechowuj je w swojej domenie hostingowej.
Utwórz nowe linki aplikacji lub linki uniwersalne pasujące do schematu precyzyjnych linków używanego w Linkach dynamicznych Firebase.
Aby otrzymywać precyzyjne linki, zaktualizuj aplikacje oraz kod aplikacji na Androida lub iOS.
Testowanie integracji linków aplikacji i uniwersalnych linków.
Zastąp opublikowane lub udostępnione linki dynamiczne Firebase linkami aplikacji i uniwersalnymi linkami.
Pierwszy krok będzie wspólny dla obu etapów migracji linków aplikacji i uniwersalnych linków. Pozostałe wartości będą się różnić w zależności od platformy, dlatego przejdź do sekcji przewodnika poniżej w zależności od platformy, którą chcesz przenieść w pierwszej kolejności.
Udostępnij nową domenę, aby hostować pliki konfiguracji linku aplikacji lub uniwersalnego linku przy użyciu Hostingu Firebase
Wybierz domenę
Pierwszym krokiem jest wybór domeny, której chcesz użyć w linkach aplikacji lub linkach uniwersalnych. Ta domena będzie używana w nowych linkach, które udostępnisz użytkownikom.
Jeśli korzystasz z Hostingu Firebase, subdomeny projektu w formacie your-project-domain.web.app
lub your-project-domain.firebaseapp.com
zostaną udostępnione automatycznie i bezpłatnie. Opcjonalnie możesz też używać domeny niestandardowej z Hostingiem Firebase lub bez niego do hostowania plików konfiguracji linku aplikacji lub uniwersalnego linku.
Konfigurowanie Hostingu Firebase
Musisz teraz skonfigurować instancję Hostingu Firebase.
Po skonfigurowaniu instancji Hostingu Firebase będziesz mieć domenę podobną do your-project-domain.web.app
lub własną domenę, jeśli wolisz.
Migracja linków aplikacji na Androida
Tworzenie i przechowywanie plików konfiguracji linku aplikacji w nowej domenie hostingowej
Aby korzystać z linków aplikacji, musisz hostować plik konfiguracji, który ułatwia utworzenie bezpiecznego powiązania między domeną używaną w linkach a Twoją aplikacją. W przypadku linków aplikacji jest to plik assetlinks.json
.
Etapy tworzenia i hostowania pliku assetlinks.json
Plik assetlinks.json
umożliwia nam udostępnienie listy autoryzowanych aplikacji, które mogą obsługiwać zawartość domeny internetowej, której będziemy używać w linkach aplikacji. Sam plik assetlinks.json musi być hostowany w katalogu głównym domeny internetowej pod ścieżką: /.well-known
.
Aby dokończyć konfigurację:
Utwórz folder
.well-known
w folderze publicznym w katalogu głównym Hostingu Firebase.Utwórz plik o nazwie
assetlinks.json
w folderze.well-known
.Skopiuj poniższą treść do pliku assetlinks.json, zwracając uwagę na znaczenie poszczególnych pól:
[{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.example.android", "sha256_cert_fingerprints": ["01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF"] } }]
namespace
– dotyczy nazwy aplikacji, którą chcesz przesłać;package_name
– odnosi się do identyfikatora aplikacji zadeklarowanego w plikubuild.gradle
aplikacji.sha256_cert_fingerprints
– oznacza odcisk cyfrowy SHA256 pliku magazynu kluczy używanego do podpisywania aplikacji.
Do wygenerowania rekordu sha256_cert_fingerprints na potrzeby debugowania możesz użyć pliku debug.keystore używanego w Android Studio. Znajdziesz go pod adresem
/Users/<username>/.android/debug.keystore
na urządzeniach z systemem macOS i Linux orazC:\Users\<username>\.android\debug.keystore
w systemie Windows.Z tego magazynu kluczy możesz pobrać wartość SHA256 za pomocą narzędzia do obsługi kluczy.
Więcej informacji o tym, jak to zrobić, znajdziesz w tej sekcji w dokumentacji dotyczącej linków aplikacji.
Możesz też użyć Asystenta linków aplikacji w Android Studio, aby wygenerować zawartość pliku assetlinks.json i skonfigurować aplikację do obsługi linków aplikacji.
Zaktualizuj plik firebase.json, aby go zindeksować na potrzeby hostingu.
"headers": [ { "source": "/.well-known/assetlinks.json", "headers": [ { "key": "Content-Type", "value": "application/json" } ] } ]
Po utworzeniu pliku assetlinks.json uruchom polecenie
firebase deploy
, aby hostować zmiany.Aby uruchomić powyższe polecenie wdrażania, musisz mieć zainstalowany interfejs wiersza poleceń Firebase.
firebase deploy --only hosting
Zweryfikuj plik assetlinks.json na stronie
https://your-project-domain.web.app/.well-known/assetlinks.json
Utwórz nowe linki aplikacji pasujące do schematu precyzyjnych linków używanego w Linkach dynamicznych Firebase
W tym kroku ponownie utworzysz precyzyjne linki z Linków dynamicznych Firebase, używając zwykłych adresów URL precyzyjnych linków pasujących do nowej domeny utworzonej dla linków do aplikacji.
Załóżmy na przykład, że masz taki link dynamiczny Firebase:
Przykład linku dynamicznego | |
---|---|
Nazwa połączenia | Witamy w example.com |
Precyzyjny link | https://example.web.app/welcome |
Aplikacja na Androida | com.example.android |
Aplikacja Apple | com.example.ios |
Długi link dynamiczny | https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos |
Krótki link dynamiczny | https://example.page.link/m9Mm |
W tym przypadku wyodrębnisz parametr precyzyjnego linku, np. https://example.web.app/welcome, i użyjesz go jako parametru linku aplikacji w swojej aplikacji.
Musisz powtórzyć ten proces w przypadku każdego linku dynamicznego Firebase, do którego chcesz przejść za pomocą linków aplikacji lub linków uniwersalnych, a następnie powielić użyty schemat precyzyjnych linków.
Spójrzmy np. na taki zestaw skróconych linków dynamicznych Firebase, parametrów precyzyjnych linków i przeniesionych wartości precyzyjnych linków:
Krótki link | Parametr precyzyjnego linku | Przeniesiony precyzyjny link |
---|---|---|
twojaaplikacja.strona.link/witamy | https://example.com/welcome | yourapp.web.app/welcome |
twojaaplikacja.strona.link/c7sn | https://example.com/main/?p=23&t=1 | yourapp.web.app/main/?p=23&t=1 |
twojaaplikacja.page.link/social | https://example.com/friendinvite/?add=1 | yourapp.web.app/friendinvite/?add=1 |
Następnie musisz zastąpić wszystkie opublikowane lub udostępnione wystąpienia linków dynamicznych Firebase nowymi precyzyjnymi linkami. Dzięki temu użytkownicy będą je klikać zamiast poprzednich linków dynamicznych Firebase.
Zaktualizuj aplikację na Androida i jej kod, aby otrzymywać precyzyjne linki
Następnym krokiem po wybraniu domeny, wybraniu schematu precyzyjnych linków i przeniesieniu Linków dynamicznych Firebase do linków aplikacji jest zaktualizowanie aplikacji na Androida i jej kodu, tak aby otrzymywały nowe precyzyjne linki.
Zalecamy zapoznanie się z pełną dokumentacją dotyczącą linków aplikacji lub przewodnikiem po Android Studio dotyczącym konfigurowania aplikacji pod kątem obsługi precyzyjnych linków. Najważniejsze czynności to:
- Przez określenie, które działania powinny obsługiwać odpowiednie precyzyjne linki
- dodanie filtra intencji dla tych działań w pliku AndroidManifest.xml,
- Otrzymywanie precyzyjnego linku w kodzie aplikacji aktywności
Załóżmy, że chcesz użyć elementu MainActivity do obsługi niektórych precyzyjnych linków. Aby to zrobić, w pliku AndroidManifest.xml musisz dodać do elementu MainActivity ten filtr intencji:
<activity android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<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.web.app" android:scheme="http"
android:pathPrefix="/welcome" />
<data android:host="example.web.app" android:scheme="https"
android:pathPrefix="/welcome" />
</intent-filter>
</activity>
W tym kroku określasz, że MainActivity jest miejscem docelowym do obsługi precyzyjnych linków z domeny wxample.web.app, która zawiera prefiks ścieżki /welcome. Pamiętaj, że musisz też określić atrybut android:autoVerify="true", który umożliwia oznaczenie aplikacji jako domyślnego modułu obsługi tego typu linku.
Na koniec musisz dodać kod w MainActivity, by pobierać dane precyzyjnych linków i używać go do obsługi precyzyjnych linków w Twojej aplikacji. Przypomina to logikę zakodowaną w aplikacji po integracji z Linkami dynamicznymi Firebase.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main)
val data: Uri? = intent?.data
val toast = Toast.makeText(this, data, duration)
toast.show()
}
Testowanie linków aplikacji
Możesz testować utworzone linki aplikacji, uruchamiając aplikację na urządzeniu fizycznym lub w emulatorze Androida.
Musisz utworzyć klikalny link w domenie skonfigurowanej dla linków aplikacji, a następnie kliknąć ten link, aby upewnić się, że otwiera się w aplikacji i prowadzi do odpowiedniego działania.
Możesz też przetestować integrację linków aplikacji za pomocą Asystenta linków aplikacji w Android Studio lub użyć tego polecenia w przypadku skonfigurowanego adresu URL linku aplikacji, aby mieć pewność, że uruchamia ono pasującą aktywność:
adb shell am start -a android.intent.action.VIEW -d <your_deep_link_url>
Zastąp opublikowane lub udostępnione linki dynamiczne Firebase linkami aplikacji
Ostatnim krokiem migracji będzie zastąpienie opublikowanych lub udostępnionych linków dynamicznych Firebase linkami do aplikacji w miarę możliwości i dalsze korzystanie z linków aplikacji.
Sposób wykonania tego kroku zależy od miejsca i sposobu publikowania linków dynamicznych Firebase. Jeśli jednak chcesz sprawdzić, które z nich występują, możesz wyeksportować istniejące metadane Linków dynamicznych Firebase. Zapoznaj się z przewodnikiem po eksportowaniu metadanych linków dynamicznych.
Etapy migracji uniwersalnych linków na urządzeniach z iOS
Tworzenie i hostowanie plików konfiguracji uniwersalnych linków w nowej domenie hostingowej
Aby korzystać z linków uniwersalnych, musisz hostować plik konfiguracji, który pomoże w ustanowieniu bezpiecznego powiązania między domeną używaną w linkach a Twoją aplikacją. W przypadku linków uniwersalnych jest to plik apple-app-site-association
(nazywany też plikiem AASA).
Procedura tworzenia i hostowania pliku apple-app-site-association
Plik AASA umożliwia nam udostępnienie listy autoryzowanych aplikacji, które mogą obsługiwać treści z domeny internetowej, której będziemy używać w linkach uniwersalnych. Sam plik AASA musi być hostowany w katalogu głównym domeny internetowej pod ścieżką: /.well-known.
Aby dokończyć konfigurację:
Utwórz folder „.well-known” w folderze publicznym w katalogu głównym Hostingu Firebase.
Utwórz plik o nazwie „apple-app-site-association” w folderze „.well-known”.
Skopiuj poniższą treść do pliku apple-app-site-association, zwracając uwagę na znaczenie poszczególnych pól:
{ "applinks": { "apps": [], "details": [ { "appId": "$TEAM_ID.com.firebase.UniversalLinks", "paths": [ "NOT /_/*", "/*" ] } ] } }
- $team_ID.BundleId – w pełni kwalifikowana nazwa aplikacji autoryzowana do obsługi linków.
Zaktualizuj plik firebase.json, aby go zindeksować na potrzeby hostingu.
"headers": [ { "source": "/.well-known/apple-app-site-association", "headers": [ { "key": "Content-Type", "value": "application/json" } ] } ]
Plik AASA jest już gotowy, więc możemy wdrożyć Firebase, aby hostować zmiany.
Zweryfikuj plik AASA na stronie https://your-project-domain.web.app/.well-known/app-app-site-association
Utwórz nowe uniwersalne linki pasujące do schematu precyzyjnych linków używanego w Linkach dynamicznych Firebase.
W tym kroku ponownie utworzysz precyzyjne linki z Linków dynamicznych Firebase, używając zwykłych adresów URL precyzyjnych linków pasujących do nowej domeny utworzonej na potrzeby uniwersalnych linków.
Załóżmy na przykład, że masz taki link dynamiczny Firebase:
Przykład linku dynamicznego | |
---|---|
Nazwa połączenia | Witamy w example.com |
Precyzyjny link | https://example.web.app/welcome |
Aplikacja na Androida | com.example.android |
Aplikacja Apple | com.example.ios |
Długi link dynamiczny | https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos |
Krótki link dynamiczny | https://example.page.link/m9Mm |
W tym przypadku wyodrębnisz parametr precyzyjnego linku, czyli https://example.web.app/welcome, i użyjesz go jako parametru uniwersalnego linku w swojej aplikacji.
Musisz powtórzyć ten proces w przypadku każdego linku dynamicznego Firebase, do którego chcesz przejść za pomocą linków aplikacji lub linków uniwersalnych, a następnie powielić użyty schemat precyzyjnych linków.
Spójrzmy np. na taki zestaw skróconych linków dynamicznych Firebase, parametrów precyzyjnych linków i przeniesionych wartości precyzyjnych linków:
Krótki link | Parametr precyzyjnego linku | Przeniesiony precyzyjny link |
---|---|---|
twojaaplikacja.strona.link/witamy | https://example.com/welcome | yourapp.web.app/welcome |
twojaaplikacja.strona.link/c7sn | https://example.com/main/?p=23&t=1 | yourapp.web.app/main/?p=23&t=1 |
twojaaplikacja.page.link/social | https://example.com/friendinvite/?add=1 | yourapp.web.app/friendinvite/?add=1 |
Następnie konieczne będzie zastąpienie wszystkich opublikowanych lub udostępnionych linków dynamicznych Firebase nowo przeniesionych precyzyjnych linków. Dzięki temu użytkownicy będą je klikać zamiast dotychczasowych linków dynamicznych Firebase.
Zaktualizuj aplikację na iOS i jej kod, aby otrzymywać precyzyjne linki
Następnym krokiem po wybraniu domeny, wybraniu schematu precyzyjnych linków i przeniesieniu Linków dynamicznych Firebase do uniwersalnych linków jest zaktualizowanie kodu aplikacji na iOS i aplikacji, tak aby otrzymywały nowe precyzyjne linki.
Zalecamy skorzystanie z pełnej dokumentacji dotyczącej uniwersalnych linków dotyczących konfigurowania aplikacji pod kątem obsługi precyzyjnych linków. Najważniejsze czynności to:
Zaktualizuj konfigurację projektu, aby umożliwić aplikacji obsługę precyzyjnych linków z nowo utworzonej domeny
Odbierz precyzyjny link w kodzie aplikacji
Aby zaktualizować konfigurację projektu i umożliwić aplikacji obsługę precyzyjnych linków, musisz dodać do projektu dodatkową powiązaną domenę w xCode dla domeny, której zamierzasz używać do hostowania pliku powiązanego z aplikacją Apple.
W tym celu:
- Otwieram Xcode
- Wybieranie projektu w nawigatorze plików
- Przechodzenie do karty Podpisywanie i możliwości w ustawieniach projektu
- Przejdź w dół do sekcji Powiązane domeny.
- Klika przycisk +, aby dodać do projektu dodatkową domenę w formacie „applinks:
”.
Na koniec musisz zaktualizować kod aplikacji, aby otrzymywać przychodzące precyzyjne linki.
W tym celu zaktualizuj najpierw plik AppDelegate.swift w taki sposób, aby odpowiadał na link uniwersalny, dodając ten kod:
func application(_ application: UIApplication, continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
AppDelegate.showReceivedUrl(userActivity: userActivity);
return true
}
static func showReceivedUrl(userActivity: NSUserActivity) {
if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
let url = userActivity.webpageURL!
print(url.absoluteString)
}
Powyższy kod zastępuje metodę wywołania zwrotnego uniwersalnego linku i rejestruje adres URL precyzyjnego linku, jeśli występuje.
Teraz wywołamy tę samą metodę showReceivedUrl
z klasy SceneDelegates, ponieważ jeśli aplikacja jest już otwarta przed kliknięciem linku uniwersalnego przez użytkownika, wywoływane będzie uniwersalne wywołanie zwrotne linku SceneDelegate
.
func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
AppDelegate.showReceivedUrl(userActivity: userActivity)
}
Testowanie linków uniwersalnych
Możesz przetestować utworzone linki uniwersalne, uruchamiając aplikację na urządzeniu fizycznym lub symulatorze.
Musisz utworzyć klikalny link w domenie skonfigurowanej dla linków uniwersalnych, a następnie kliknąć ten link, aby upewnić się, że otwiera się w aplikacji i kieruje do odpowiedniego ekranu.
Obsługa banerów inteligentnych w aplikacjach
Zdecydowanie zalecamy korzystanie z banerów aplikacji inteligentnych, aby zapewnić użytkownikom podobne wrażenia co w przypadku Linków dynamicznych Firebase.
Dzięki inteligentnym banerom użytkownicy zostaną przekierowani do sklepu App Store, gdzie będą mogli znaleźć Twoją aplikację, jeśli nie została ona jeszcze zainstalowana na ich urządzeniu. Możesz też opcjonalnie skonfigurować parametr, który będzie przekazywany do Twojej aplikacji po jej pobraniu i zainstalowaniu, aby umożliwić użytkownikom kontynuowanie pracy. Jeśli Twoja aplikacja jest już zainstalowana, uruchomi przekazywanie parametru do aplikacji, by ułatwić użytkownikowi przejście do odpowiednich treści na podstawie klikniętego banera inteligentnego aplikacji.
Zastąp opublikowane lub udostępnione linki dynamiczne Firebase linkami aplikacji
Ostatnim krokiem migracji będzie zastąpienie opublikowanych lub udostępnionych linków dynamicznych Firebase uniwersalnymi linkami, gdy tylko będzie to możliwe, i dalsze korzystanie z uniwersalnych linków.
Sposób wykonania tego kroku zależy od miejsca i sposobu publikowania linków dynamicznych Firebase.
Aby ułatwić śledzenie istniejących Linków dynamicznych Firebase, które mają zostać przeniesione, opublikujemy przewodnik po eksportowaniu metadanych krótkich linków z Linków dynamicznych Firebase. Więcej informacji znajdziesz w dokumencie na temat wycofywania linków dynamicznych.