Linki do aplikacji na Androida to adresy URL HTTP, które przenoszą użytkowników bezpośrednio do określonych treści w Twojej aplikacji na Androida. Mogą one zwiększyć ruch w aplikacji, pomóc Ci dowiedzieć się, które treści są najczęściej używane, oraz ułatwić użytkownikom znajdowanie i udostępnianie treści w aplikacji instalowanej.
Aby dodać obsługę linków do aplikacji na Androida:
- Utwórz filtry intencji w pliku manifestu.
- Dodaj do aktywności aplikacji kod do obsługi linków przychodzących.
- Powiąż aplikację i witrynę za pomocą protokołu Digital Asset Links.
Asystent linków do aplikacji w Android Studio upraszcza ten proces dzięki kreatorowi, który prowadzi Cię krok po kroku . Opis znajdziesz poniżej.
Więcej informacji o tym, jak działają linki do aplikacji i jakie korzyści oferują, znajdziesz w artykule Obsługa linków do aplikacji na Androida.
Dodawanie filtrów intencji
Asystent linków do aplikacji w Android Studio może pomóc Ci utworzyć filtry intencji w pliku manifestu i zmapować istniejące adresy URL z Twojej witryny na aktywności w aplikacji. Asystent linków do aplikacji dodaje też w każdej odpowiedniej aktywności kod szablonu do obsługi intencji.
Aby dodać filtry intencji i obsługę adresów URL:
- Kliknij Tools (Narzędzia) > App Links Assistant (Asystent linków do aplikacji).
- Kliknij Open URL Mapping Editor (Otwórz edytor mapowania adresów URL) , a potem kliknij Add (Dodaj)
u dołu listy URL Mapping (Mapowanie adresów URL) , aby dodać nowe mapowanie adresów URL. Dodaj szczegóły nowego mapowania adresów URL:
Rysunek 1. Dodaj podstawowe informacje o strukturze linków w witrynie aby zmapować adresy URL na aktywności w aplikacji.
- W polu Host (Host) wpisz adres URL swojej witryny.
Dodaj
path,pathPrefix, lubpathPatterndla adresów URL, które chcesz zmapować.Jeśli na przykład masz aplikację do udostępniania przepisów, w której wszystkie przepisy są dostępne w tej samej aktywności, a przepisy w odpowiedniej witrynie znajdują się w tym samym /recipe katalogu, użyj pathPrefix (prefiks ścieżki) i wpisz /recipe. Dzięki temu adres URL http://www.recipe-app.com/recipe/grilled-potato-salad zostanie zmapowany na aktywność wybraną w następnym kroku.
- Wybierz Activity (Aktywność) , do której mają być kierowani użytkownicy.
- Kliknij OK.
Otworzy się okno URL Mapping Editor (Edytor mapowania adresów URL). Asystent linków do aplikacji dodaje filtry intencji na podstawie mapowania adresów URL do pliku
AndroidManifest.xmli wyróżnia zmiany w polu Preview. Jeśli chcesz wprowadzić zmiany, kliknij Open AndroidManifest.xml (Otwórz AndroidManifest.xml) , aby edytować filtr intencji. Więcej informacji znajdziesz w artykule Filtry intencji dla linków przychodzących.Główne okno narzędzia Asystent linków do aplikacji wyświetla też wszystkie istniejące precyzyjne linki w pliku
AndroidManifest.xmli umożliwia szybkie naprawienie wszelkich nieprawidłowych konfiguracji przez kliknięcie Fix All Manifest Issues.
Uwaga: aby obsługiwać przyszłe linki bez aktualizowania aplikacji, zdefiniuj mapowanie adresów URL, które obsługuje adresy URL, które planujesz dodać. Dodaj też adres URL ekranu głównego aplikacji, aby był on uwzględniany w wynikach wyszukiwania.
Aby sprawdzić, czy mapowanie adresów URL działa prawidłowo, wpisz adres URL w polu Check URL Mapping (Sprawdź mapowanie adresów URL).
Jeśli wszystko działa prawidłowo, komunikat o powodzeniu informuje, że wpisany adres URL jest zmapowany na wybraną aktywność.
Obsługa linków przychodzących
Gdy sprawdzisz, czy mapowanie adresów URL działa prawidłowo, dodaj logikę do obsługi utworzonej intencji:
- W Asystencie linków do aplikacji kliknij Select Activity (Wybierz aktywność).
- Wybierz aktywność z listy i kliknij Insert Code (Wstaw kod).
Asystent linków do aplikacji dodaje do aktywności kod podobny do tego:
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) ... // ATTENTION: This was auto-generated to handle app links. val appLinkIntent: Intent = intent val appLinkAction: String? = appLinkIntent.action val appLinkData: Uri? = appLinkIntent.data ... }
Java
@Override void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ... // ATTENTION: This was auto-generated to handle app links. Intent appLinkIntent = getIntent(); String appLinkAction = appLinkIntent.getAction(); Uri appLinkData = appLinkIntent.getData(); ... }
Ten kod nie jest kompletny. Musisz teraz wykonać działanie na podstawie identyfikatora URI w
appLinkData, np. wyświetlić odpowiednią treść. W przypadku aplikacji do udostępniania przepisów kod może wyglądać tak jak w tym przykładzie:
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) ... handleIntent(intent) } override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) handleIntent(intent) } private fun handleIntent(intent: Intent) { val appLinkAction = intent.action val appLinkData: Uri? = intent.data if (Intent.ACTION_VIEW == appLinkAction) { appLinkData?.lastPathSegment?.also { recipeId -> Uri.parse("content://com.recipe_app/recipe/") .buildUpon() .appendPath(recipeId) .build().also { appData -> showRecipe(appData) } } } }
Java
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ... handleIntent(getIntent()); } protected void onNewIntent(Intent intent) { super.onNewIntent(intent); handleIntent(intent); } private void handleIntent(Intent intent) { String appLinkAction = intent.getAction(); Uri appLinkData = intent.getData(); if (Intent.ACTION_VIEW.equals(appLinkAction) && appLinkData != null){ String recipeId = appLinkData.getLastPathSegment(); Uri appData = Uri.parse("content://com.recipe_app/recipe/").buildUpon() .appendPath(recipeId).build(); showRecipe(appData); } }
Powiązanie aplikacji z witryną
Po skonfigurowaniu obsługi adresów URL w aplikacji Asystent linków do aplikacji generuje plik Digital Assets Links, którego możesz użyć do powiązania witryny z aplikacją.
Zamiast używać pliku Digital Asset Links, możesz powiązać witrynę i aplikację w Search Console.
Jeśli używasz podpisywania aplikacji przez Google Play dla swojej aplikacji, odcisk cyfrowy certyfikatu wygenerowany przez Asystenta linków do aplikacji zwykle nie pasuje do odcisku cyfrowego na urządzeniach użytkowników. W takim przypadku prawidłowy fragment kodu JSON protokołu Digital Asset Links dla Twojej aplikacji znajdziesz na koncie dewelopera w Konsoli Play w sekcji Release > Setup > App signing.
Aby powiązać aplikację i witrynę za pomocą Asystenta linków do aplikacji, kliknij Open Digital Asset Links File Generator w Asystencie linków do aplikacji i wykonaj te czynności:
Rysunek 2. Wpisz szczegóły dotyczące witryny i aplikacji, aby wygenerować plik Digital Asset Links.
- Wpisz Site domain (Domenę witryny) i Application ID (Identyfikator aplikacji).
Aby uwzględnić w pliku Digital Asset Links obsługę logowania jednym kliknięciem, kliknij Support sharing credentials between the app and the website (Obsługuj udostępnianie danych logowania między aplikacją a witryną) i wpisz adres URL logowania w witrynie.Spowoduje to dodanie do pliku Digital Asset Links tego ciągu znaków, który informuje, że aplikacja i witryna udostępniają dane logowania:
delegate_permission/common.get_login_creds.Określ konfigurację podpisywania lub wybierz plik magazynu kluczy.
Upewnij się, że wybierasz odpowiednią konfigurację kompilacji do publikacji lub plik magazynu kluczy dla kompilacji do publikacji albo konfigurację debugowania lub plik magazynu kluczy dla kompilacji do debugowania aplikacji. Jeśli chcesz skonfigurować kompilację produkcyjną, użyj konfiguracji kompilacji do publikacji. Jeśli chcesz przetestować wersję, użyj konfiguracji debugowania.
- Kliknij Generate Digital Asset Links file (Wygeneruj plik Digital Asset Links).
- Gdy Android Studio wygeneruje plik, kliknij Save file (Zapisz plik) , aby go pobrać.
- Prześlij plik
assetlinks.jsondo witryny pod adresemhttps://yoursite/.well-known/assetlinks.jsoni ustaw uprawnienia do odczytu dla wszystkich.Ważne: system weryfikuje plik Digital Asset Links za pomocą zaszyfrowanego protokołu HTTPS. Upewnij się, że plik
assetlinks.jsonjest dostępny przez połączenie HTTPS, niezależnie od tego, czy filtr intencji aplikacji zawierahttps. - Kliknij Link and Verify, aby potwierdzić, że plik Digital Asset Links został przesłany do właściwej lokalizacji.
Asystent linków do aplikacji może sprawdzić poprawność pliku Digital Assets Links, który powinien być opublikowany w Twojej witrynie. W przypadku każdej domeny zadeklarowanej w pliku manifestu Asystent analizuje plik w Twojej witrynie, przeprowadza weryfikację i podaje szczegółowe wyjaśnienie, jak naprawić ewentualne błędy.
Więcej informacji o powiązaniu witryny z aplikacją za pomocą pliku Digital Asset Links znajdziesz w artykule Deklarowanie powiązań z witryną .
Testowanie linków do aplikacji na Androida
Aby sprawdzić, czy linki otwierają właściwą aktywność:
- W Asystencie linków do aplikacji kliknij Test App Links (Testuj linki do aplikacji).
- W polu URL wpisz adres URL, który chcesz przetestować, np. http://recipe-app.com/recipe/grilled-potato-salad.
- Kliknij Run Test (Uruchom test).
Rysunek 3. Okno Test App Links (Testuj linki do aplikacji) , w którym widać testowany adres URL i komunikat o powodzeniu.
Jeśli mapowanie adresów URL nie jest prawidłowo skonfigurowane lub nie istnieje, pod adresem URL w oknie Test App Links pojawi się komunikat o błędzie. W przeciwnym razie Android Studio uruchomi aplikację na urządzeniu lub emulatorze w określonej aktywności bez wyświetlania okna wyboru aplikacji i wyświetli komunikat o powodzeniu w oknie Testowanie linków aplikacji, jak pokazano na rysunku 3.
Jeśli Android Studio nie może uruchomić aplikacji, w oknie Run (Uruchom) Androida Studio pojawi się komunikat o błędzie.
Aby testować linki do aplikacji na Androida za pomocą Asystenta linków do aplikacji, musisz mieć podłączone urządzenie lub a urządzenie wirtualne dostępne z Androidem 6.0 (poziom API 23) lub nowszym. Więcej informacji znajdziesz w artykułach o podłączaniu urządzenia i tworzeniu AVD.