Migracja z linków dynamicznych na linki aplikacji i linki uniwersalne

Ten przewodnik po migracji dotyczy korzystania z Linki aplikacji oraz Uniwersalne linki, opcjonalnie korzystając z Hostingu Firebase do hostowania plików powiązania witryny aplikacji.

Ta migracja zastępuje te funkcje Linków dynamicznych Firebase:

Funkcja 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 możliwość kontynuacji ścieżki po pobraniu instalowanie aplikacji przy użyciu odroczonego precyzyjnego linku.
Zapewnij użytkownikom wrażenia kontekstowe dzięki treściom z precyzyjnymi linkami w aplikacji (jeśli jest już zainstalowana),
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 linku dynamicznego Firebase które nie są obsługiwane w tym przewodniku, zapoznaj się z innymi scenariuszami migracji w Najczęstsze pytania na temat wycofania linków dynamicznych dokumentacji.

Załóżmy, że masz link dynamiczny Firebase, który wygląda tak:

Przykład linku dynamicznego
Nazwa linku 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 które możesz wyświetlić użytkownikom:

  • Precyzyjny link, który użytkownik może kliknąć, aby otworzyć aplikację, gdy jest już zainstalowana
  • kontynuacja ścieżki użytkownika, która prowadzi do określonego miejsca; aplikacji po jej uruchomieniu.

Jednak precyzyjny link aplikacji lub uniwersalny link nie będzie zawierać: zachowań użytkowników (dotychczasowych Linków dynamicznych Firebase):

  • Przekierowywanie użytkowników do sklepu, w którym mogą pobrać aplikację zainstalować aplikację
  • zapewniać kontynuację ścieżki użytkownika po pobraniu aplikacji, instalowanie i pierwsze instalowanie aplikacji;

Zwróć uwagę na różnice w działaniu i funkcjonalności tych aplikacji Linki / linki uniwersalne w porównaniu z wywołanymi Linkami dynamicznymi Firebase w tabeli powyżej.

Zanim zaczniesz

Linki dynamiczne Firebase korzystają z Linków aplikacji (na Androidzie) i Uniwersalnych linków (na iOS) we własnej implementacji, aby zapewnić precyzyjne linki już po zainstalowaniu aplikacji.

Z tego przewodnika dowiesz się, jak tworzyć własne linki aplikacji i uniwersalne linki. za pomocą Hostingu Firebase, aby zastąpić tę część funkcjonalności oferowanej przez Linków dynamicznych Firebase podczas przenoszenia Linków dynamicznych Firebase do nowej Rozwiązanie do migracji linków aplikacji lub linków uniwersalnych.

Aby wypełnić formularz, potrzebne są następujące informacje: migracja:

  • 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 wersji dynamicznej Firebase Domena linków (jeśli dotyczy)

Możesz też skorzystać z przewodnika po eksportowaniu metadanych linków dynamicznych. wyeksportować istniejące metadane linków uzyskania powyższych informacji.

Omówienie etapów migracji

  1. udostępnić nową domenę (jeśli nie masz jeszcze domeny, której chcesz używać); do przechowywania plików konfiguracji linków aplikacji lub uniwersalnego linku przy użyciu Firebase. Hosting.

  2. Utwórz i hostuj pliki konfiguracji linku aplikacji lub uniwersalnego linku w Twojej domenie hostingowej.

  3. Utwórz nowe linki aplikacji lub linki uniwersalne pasujące do schematu precyzyjnych linków używane w Linkach dynamicznych Firebase.

  4. Aby otrzymywać precyzyjne linki, zaktualizuj aplikacje oraz kod aplikacji na Androida lub iOS.

  5. Testowanie integracji linków aplikacji i uniwersalnych linków.

  6. Zastąp opublikowane lub udostępnione linki dynamiczne Firebase linkami aplikacji i uniwersalnych linków.

Pierwszy krok będzie powszechny zarówno w procesie migracji linków aplikacji, jak i uniwersalnych linków. reszta może się różnić w zależności od platformy, więc przejdź do sekcji w zależności od platformy, którą chcesz przenieść w pierwszej kolejności.

Wybierz domenę

Najpierw wybierz domenę, której chcesz użyć w linkach aplikacji. Linki uniwersalne. Ta domena będzie używana w przypadku nowych linków który udostępnisz użytkownikom.

Jeśli używasz Hosting Firebase, subdomeny projektu w formacie your-project-domain.web.app lub Usługa your-project-domain.firebaseapp.com jest dostępna automatycznie i bez opłat. Ty możesz opcjonalnie użyć domeny niestandardowej z Hostingiem Firebase lub bez niego do hostowania Twojej a także pliki konfiguracyjne linku aplikacji lub uniwersalnego linku.

Konfigurowanie Hostingu Firebase

Następnie musisz skonfigurować instancję Hostingu Firebase.

Po skonfigurowaniu instancji Hostingu Firebase masz domenę podobną do your-project-domain.web.app lub własna domena jeśli wolisz.

Aby korzystać z linków aplikacji, musisz hostować plik konfiguracji, który pomaga tworzenia bezpiecznego powiązania między domeną używaną w linkach a Twoją . W przypadku linków aplikacji jest to plik assetlinks.json.

Etapy tworzenia i hostowania pliku assetlinks.json

Plik assetlinks.json umożliwia nam podanie listy autoryzowanych aplikacji, które może 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. w ścieżce: /.well-known.

Aby dokończyć konfigurację:

  1. Utwórz folder .well-known w folderze publicznym w folderze Katalog główny Hostingu Firebase.

  2. Utwórz plik o nazwie assetlinks.json w folderze .well-known.

  3. Skopiuj poniższą treść do pliku assetlinks.json, pamiętając o znaczenie poszczególnych poniższych 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 parametrze build.gradle plik
    • sha256_cert_fingerprints – odnosi się do odcisku cyfrowego SHA256 plik magazynu kluczy używany do podpisywania aplikacji.

    Możesz użyć pliku debug.keystore używanego przez Android Studio, aby wygenerować sha256_cert_fingerprints na potrzeby debugowania. Dodatkowe informacje na temat pod adresem /Users/<username>/.android/debug.keystore w systemach Mac i Linux oraz C:\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: w tej sekcji dokumentacji dotyczącej linków aplikacji .

    Możesz też użyć atrybutu Asystent linków aplikacji w Android Studio, aby wygenerować zawartość pliku assetlinks.json skonfigurować aplikację do obsługi linków aplikacji.

  4. Zaktualizuj plik firebase.json, aby go zindeksować na potrzeby hostingu.

    "headers": [
      {
        "source": "/.well-known/assetlinks.json",
        "headers": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ]
      }
    ]
    
  5. Po utworzeniu pliku assetlinks.json uruchom polecenie firebase deploy, aby do wdrożenia zmian.

    Pamiętaj, że musisz używać interfejsu wiersza poleceń Firebase. aby uruchomić to polecenie wdrożenia.

    firebase deploy --only hosting
    
  6. Zweryfikuj plik assetlinks.json, przechodząc do https://your-project-domain.web.app/.well-known/assetlinks.json

W tym kroku odtworzysz precyzyjne linki z Linków dynamicznych Firebase. używając zwykłych adresów URL precyzyjnych linków, które pasują do nowej domeny utworzonej dla aplikacji. Linki.

Załóżmy na przykład, że masz taki link dynamiczny Firebase:

Przykład linku dynamicznego
Nazwa linku 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 takim przypadku wyodrębnisz parametr precyzyjnego linku, tj. https://example.web.app/welcome i będzie używać go jako linku aplikacji dla Twojej aplikacji.

Musisz powtórzyć ten proces dla każdego linku dynamicznego Firebase, który chcesz utworzyć przejść na linki aplikacji lub uniwersalne linki oraz odtworzyć precyzyjne linki użyty schemat.

Zobacz na przykład poniższy zestaw Linków dynamicznych Firebase krótkie linki, parametry precyzyjnych linków i przeniesione 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 wystąpienia Linków dynamicznych Firebase, które zawierają zostały opublikowane lub udostępnione z użyciem nowych przeniesionych precyzyjnych linków, więc użytkownicy będą klikać te linki aplikacji zamiast wcześniejszych linków dynamicznych Firebase.

Następny krok po wybraniu domeny, schematu precyzyjnych linków przekształcenie Linków dynamicznych Firebase do linków aplikacji jest zaktualizowaniem aplikacji na Androida i kod aplikacji, aby otrzymać nowe precyzyjne linki.

Zalecamy przestrzeganie pełnych Tutaj znajdziesz dokumentację dotyczącą linków aplikacji lub Przewodnik po Android Studio o konfigurowaniu aplikacji pod kątem obsługi precyzyjnych linków. Najważniejsze kroki to:

  1. Przez określenie, które działania powinny obsługiwać odpowiednie precyzyjne linki
  2. dodanie filtra intencji dla tych działań w pliku AndroidManifest.xml, plik
  3. Otrzymujesz precyzyjny link w sekcji aktywności kod aplikacji

Załóżmy, że chcesz użyć głównejAktywności, by obsługiwać niektóre głębokie . Aby to zrobić, musisz dodać do pola MainActivity w pliku AndroidManifest.xml:

<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 dla obsługi precyzyjnych linków z domeny wxample.web.app, która obejmuje /prefiks ścieżki powitalnej. Pamiętaj, że musisz też określić android:autoVerify="true" za pomocą którego możesz oznaczyć aplikację jako jest to domyślny moduł obsługi tego typu linków.

Na koniec musisz dodać kod do sekcji MainActivity, aby pobierać dane dotyczące precyzyjnych linków i używają ich do zwiększania wygody użytkowników w aplikacji. Ten jest podobna do logiki zakodowanej już w aplikacji podczas integracji dzięki Linkom dynamicznym 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()
}

Możesz przetestować utworzone linki aplikacji, uruchamiając aplikację na na urządzeniu fizycznym ani w Emulator Androida.

Musisz utworzyć link, który można kliknąć, korzystając z domeny skonfigurowanej dla Twojej aplikacji i kliknij je, aby upewnić się, że otworzą się w Twojej aplikacji. powoduje przejście do odpowiedniego działania.

Możesz też przetestować integrację linków aplikacji za pomocą Asystent linków aplikacji w Android Studio. Możesz też użyć tego polecenia skonfigurowany tak, aby poprawnie uruchamiać aktywność pasującą:

adb shell am start -a android.intent.action.VIEW -d <your_deep_link_url>

Ostatnim krokiem migracji będzie zastąpienie opublikowanych lub udostępnionych Linki dynamiczne Firebase z linkami aplikacji (gdy tylko jest to możliwe) oraz dalsze korzystanie Linki aplikacji.

Sposób wykonania tego kroku zależy od miejsca i sposobu Linki dynamiczne Firebase zostały opublikowane. Aby ułatwić sobie śledzenie, które z nich występują, mogą wyeksportować istniejące metadane istniejących linków dynamicznych Firebase. Zobacz znajdziesz w przewodniku po eksportowaniu metadanych linków dynamicznych.

Aby korzystać z linków uniwersalnych, musisz hostować plik konfiguracji, który pomaga tworzenia bezpiecznego powiązania między domeną używaną w linkach a Twoją . W przypadku linków uniwersalnych jest to plik apple-app-site-association (również znanym jako plik 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ć zawartości domeny internetowej, która będzie używana w naszych linkach uniwersalnych. Dokument AASA musi być hostowany w katalogu głównym domeny internetowej pod ścieżką: /.dobrze-znane.

Aby dokończyć konfigurację:

  1. Utwórz plik „.well-known” w folderze publicznym na Katalog główny Hostingu Firebase.

  2. Utwórz plik o nazwie „apple-app-site-association”. pod „.well-known” folderu Dysku.

  3. Skopiuj poniższą zawartość 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ługa linków
  4. 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"
          }
        ]
      }
    ]
    
  5. Plik AASA jest już gotowy, więc możemy wdrożyć Firebase, aby hostować zmian.

  6. Zweryfikuj plik AASA, przechodząc do https://your-project-domain.web.app/.well-known/app-app-site-association

W tym kroku odtworzysz precyzyjne linki z Linków dynamicznych Firebase. używając zwykłych adresów URL precyzyjnych linków, które pasują do nowej domeny utworzonej na potrzeby Linki uniwersalne.

Załóżmy na przykład, że masz taki link dynamiczny Firebase:

Przykład linku dynamicznego
Nazwa linku 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: tj. https://example.web.app/welcome i będzie go używać jako Parametr linku Twojej aplikacji.

Musisz powtórzyć ten proces dla każdego linku dynamicznego Firebase, który chcesz utworzyć przejść na linki aplikacji lub uniwersalne linki oraz odtworzyć precyzyjne linki użyty schemat.

Zobacz na przykład poniższy zestaw Linków dynamicznych Firebase krótkie linki, parametry precyzyjnych linków i przeniesione 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 wystąpienia Linków dynamicznych Firebase, które zawierają zostały opublikowane lub udostępnione z użyciem nowych przeniesionych precyzyjnych linków, więc użytkownicy będą klikać te uniwersalne linki zamiast wcześniejszych linków dynamicznych Firebase.

Następny krok po wybraniu domeny, schematu precyzyjnych linków przekształcenie Linków dynamicznych Firebase w Uniwersalne linki jest równoznaczne z aktualizacją iOS aplikacji i aplikacji, aby otrzymywać nowe precyzyjne linki.

Zalecamy przestrzeganie pełnych Dokumentacja uniwersalnych linków o konfigurowaniu aplikacji pod kątem obsługi precyzyjnych linków. Najważniejsze kroki to:

  1. Zaktualizuj konfigurację projektu, aby umożliwić aplikacji obsługę technologii deep learning linki z nowo utworzonej domeny

  2. Odbierz precyzyjny link w kodzie aplikacji

Aby zaktualizować konfigurację projektu w celu umożliwienia aplikacji obsługi precyzyjnych rozwiązań musisz dodać do projektu dodatkową powiązaną domenę xCode dla domeny, w której zamierzasz hostować apple-app-site-affiliate.

W tym celu:

  1. Otwieram Xcode
  2. Wybieranie projektu w nawigatorze plików
  3. Przechodzenie do sekcji Signing & Karta możliwości w ustawieniach projektu
  4. Przejdź w dół do sekcji Powiązane domeny.
  5. Kliknij przycisk +, aby dodać do projektu dodatkową domenę. format „linki aplikacji:”.

Na koniec musisz zaktualizować swój kod aplikacji, aby otrzymywać precyzyjne linki przychodzące.

Aby to zrobić, najpierw zaktualizuj plik AppDelegate.swift w taki sposób, aby odpowiadał Uniwersalny link, 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 precyzyjny link adres URL linku (jeśli istnieje).

Teraz wywołamy tę samą metodę showReceivedUrl z klasy SceneDelegate Jeśli aplikacja jest już otwarta przed kliknięciem uniwersalny link, wywołanie zwrotne uniwersalnego linku w SceneDelegate będzie który jest wywoływany.

func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
  AppDelegate.showReceivedUrl(userActivity: userActivity)
}

Możesz przetestować utworzone linki uniwersalne, uruchamiając aplikację w urządzeniem fizycznym lub symulatorem.

W tym celu użyj domeny skonfigurowanej dla Twojego konta, i kliknij ten link, aby upewnić się, że otworzy się aplikacji i przechodzi do odpowiedniego ekranu.

Obsługa banerów inteligentnych w aplikacjach

Zdecydowanie zalecamy użycie Banery do aplikacji inteligentnych jako sposób na zapewnienie użytkownikom środowiska podobnego do Firebase Dynamic Linki.

Przy użyciu inteligentnych banerów aplikacji użytkownicy będą kierowani do sklepu z aplikacjami, w którym znajdą Twoją aplikację jeśli Twoja aplikacja nie jest jeszcze na nim zainstalowana. Możesz też opcjonalnie skonfigurować parametr, który będzie przekazywany do aplikacji po jej pobraniu i zainstalować ją, aby użytkownicy mogli kontynuować swoją podróż. Jeśli już zainstalowana, otworzy się przekazywanie parametru do pomaga w kierowaniu użytkownika do odpowiednich treści na podstawie aplikacji inteligentnej baner, który kliknął użytkownik;

Ostatnim krokiem migracji będzie zastąpienie opublikowanych lub udostępnionych Linki dynamiczne Firebase z uniwersalnymi linkami wszędzie tam, gdzie jest to możliwe – i kontynuować za pomocą uniwersalnych linków.

Sposób wykonania tego kroku zależy od miejsca i sposobu Linki dynamiczne Firebase zostały opublikowane.

Aby ułatwić śledzenie istniejących Linków dynamicznych Firebase, które mają zostać przeniesione, Publikowanie przewodnika po eksportowaniu metadanych krótkich linków z Firebase. Linki dynamiczne. Wróć na Najczęstsze pytania na temat wycofania linków dynamicznych .