Dodaj linki aplikacji na Androida

Linki 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 aplikacji 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 aplikacji na Androida:

  1. Utwórz filtry intencji w pliku manifestu.
  2. Dodaj kod do aktywności aplikacji, aby obsługiwać przychodzące linki.
  3. 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 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 dodaje też kod szablonu w każdej odpowiedniej aktywności, aby obsługiwać intencję.

Aby dodać filtry intencji i obsługę adresów URL:

  1. Kliknij Tools (Narzędzia) > App Links Assistant (Asystent linków do aplikacji).
  2. 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.
  3. Dodaj szczegóły nowego mapowania adresów URL:

    Asystent linków do aplikacji przeprowadzi Cię przez podstawowe mapowanie adresów URL.

    Rysunek 1. Dodaj podstawowe informacje o strukturze linków w witrynie aby zmapować adresy URL na aktywności w aplikacji.

    1. Wpisz adres URL witryny w polu Host.
    2. Dodaj path, pathPrefix, lub pathPattern dla 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 i wpisz /recipe. W ten sposób adres URL http://www.recipe-app.com/recipe/grilled-potato-salad zostanie zmapowany na aktywność, którą wybierzesz w następnym kroku.

    3. Wybierz Activity (Aktywność) , do której mają być kierowani użytkownicy.
    4. 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.xml i 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.xml i umożliwia szybkie naprawienie wszelkich nieprawidłowych konfiguracji przez kliknięcie Fix All Manifest Issues.

    Asystent linków do aplikacji umożliwia naprawianie błędów w konfiguracji manifestu.

    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.

  4. 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ę obsługi utworzonej intencji:

  1. W Asystencie linków do aplikacji kliknij Select Activity (Wybierz aktywność).
  2. 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 podjąć 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ć np. tak:

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 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:

Asystent linków do aplikacji przeprowadzi Cię przez podstawowe mapowanie adresów URL.

Rysunek 2. Wpisz szczegóły dotyczące witryny i aplikacji, aby wygenerować plik Digital Asset Links.

  1. Wpisz Site domain (Domenę witryny) i Application ID (Identyfikator aplikacji).
  2. 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 deklaruje, że aplikacja i witryna udostępniają dane logowania: delegate_permission/common.get_login_creds.

  3. 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.

  4. Kliknij Generate Digital Asset Links file (Wygeneruj plik Digital Asset Links).
  5. Gdy Android Studio wygeneruje plik, kliknij Save file (Zapisz plik) , aby go pobrać.
  6. Prześlij plik assetlinks.json do swojej witryny pod adresem https://yoursite/.well-known/assetlinks.json, aby każdy miał do niego dostęp do odczytu.

    Ważne: system weryfikuje plik Digital Asset Links za pomocą zaszyfrowanego protokołu HTTPS. Upewnij się, że plik assetlinks.json jest dostępny przez połączenie HTTPS, niezależnie od tego, czy filtr intencji aplikacji zawiera https.

  7. Kliknij Link and Verify (Połącz i zweryfikuj) , 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 weryfikacje 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 aplikacji na Androida

Aby sprawdzić, czy linki otwierają właściwą aktywność:

  1. W Asystencie linków do aplikacji kliknij Test App Links (Testuj linki aplikacji).
  2. Wpisz adres URL, który chcesz przetestować, w polu URL , np. http://recipe-app.com/recipe/grilled-potato-salad.
  3. Rysunek 3. Okno Test App Links (Testuj linki aplikacji) z testowanym adresem URL i komunikatem o powodzeniu.

  4. Kliknij Run Test (Uruchom test).

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 z pytaniem o wybór aplikacji („wybieracz aplikacji”) i wyświetli komunikat o powodzeniu w oknie App Link Testing (Testowanie linków aplikacji) , jak pokazano na rysunku 3.

Jeśli Android Studio nie może uruchomić aplikacji, w oknie Run (Uruchom) pojawi się komunikat o błędzie.

Aby testować linki aplikacji na Androida za pomocą Asystenta linków do aplikacji, musisz mieć podłączone urządzenie lub a urządzenie wirtualne z Androidem 6.0 (poziom API 23) lub nowszym. Więcej informacji znajdziesz w artykułach o podłączaniu urządzenia i tworzeniu AVD.