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 aplikacji na Androida. Linki aplikacji na Androida mogą zwiększyć ruch w aplikacji, pomóc w określeniu, 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 do aplikacji na Androida:

  1. Utwórz w pliku manifestu filtry intencji.
  2. Dodaj do aktywności aplikacji kod, który będzie 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 krok po kroku, jak opisano poniżej.

Więcej informacji o działaniu linków do aplikacji i ich zaletach 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 mapować istniejące adresy URL z Twojej witryny na działania w aplikacji. Asystent linków do aplikacji dodaje też kod szablonu w każdym odpowiednim działaniu, aby obsługiwać intencję.

Aby dodać filtry intencji i obsługę adresów URL, wykonaj te czynności:

  1. Wybierz Narzędzia > Asystent linków do aplikacji.
  2. Kliknij Otwórz edytor mapowania adresów URL, a potem kliknij Dodaj u dołu listy Mapowanie adresów URL, aby dodać nowe mapowanie adresów URL.
  3. Dodaj szczegóły nowego mapowania adresu 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 działania w aplikacji.

    1. Wpisz adres URL swojej witryny w polu Host.
    2. Dodaj path, pathPrefix lub pathPattern do 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 na powiązanej stronie internetowej znajdują się w tym samym katalogu /recipe, użyj parametru pathPrefix i wpisz /recipe. W ten sposób adres URL http://www.recipe-app.com/recipe/grilled-potato-salad będzie powiązany z aktywnością wybraną w następnym kroku.

    3. Wybierz aktywność, do której mają prowadzić adresy URL.
    4. Kliknij OK.

    Pojawi się okno Edytor mapowania adresów URL. Asystent linków do aplikacji dodaje filtry intencji na podstawie mapowania adresów URL do pliku AndroidManifest.xml i podświetla zmiany w polu Podgląd. Jeśli chcesz wprowadzić zmiany, kliknij Otwórz plik AndroidManifest.xml, aby edytować filtr intencji. Więcej informacji znajdziesz w artykule Filtry intencji w przypadku 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 nieprawidłowych konfiguracji przez kliknięcie Napraw wszystkie problemy z manifestem.

    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 URL-i, które obsługuje adresy URL, które planujesz dodać. Podaj 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 Sprawdź mapowanie adresów URL.

    Jeśli wszystko działa prawidłowo, komunikat o sukcesie będzie informować, że wpisany adres URL jest powiązany z wybraną aktywnością.

Obsługa linków przychodzących

Gdy upewnisz się, że mapowanie adresów URL działa prawidłowo, dodaj logikę obsługi utworzonej intencji:

  1. W Asystencie linków do aplikacji kliknij Wybierz aktywność.
  2. Wybierz aktywność z listy i kliknij 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ć odpowiednie treści. Na przykład w przypadku aplikacji do udostępniania przepisów Twój kod może wyglądać 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ązywanie aplikacji z witryną

Po skonfigurowaniu obsługi adresów URL w aplikacji Asystent linków do aplikacji wygeneruje plik Digital Asset Links, którego możesz użyć do powiązania witryny z aplikacją.

Zamiast korzystać z pliku Digital Asset Links, możesz powiązać witrynę i aplikację w Search Console.

Jeśli w przypadku aplikacji używasz podpisywania aplikacji w Google Play, 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ę ze stroną internetową za pomocą Asystenta linków do aplikacji, kliknij Otwórz generator plików Digital Asset Links 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 witryny i aplikacji, aby wygenerować plik Digital Asset Links.

  1. Wpisz domenę witrynyidentyfikator aplikacji.
  2. Aby w pliku Digital Asset Links uwzględnić obsługę logowania jednym kliknięciem, wybierz 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ć kompilację, użyj konfiguracji debugowania.

  4. Kliknij Wygeneruj plik Digital Asset Links.
  5. Gdy Android Studio wygeneruje plik, kliknij Zapisz plik, aby go pobrać.
  6. Prześlij plik assetlinks.json do swojej witryny, przyznając wszystkim uprawnienia do odczytu pod adresem https://yoursite/.well-known/assetlinks.json.

    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 Połącz i zweryfikuj, aby potwierdzić, że prawidłowy plik Digital Asset Links został przesłany do właściwej lokalizacji.

Asystent linków 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ą prawidłową aktywność, wykonaj te czynności:

  1. W Asystencie linków do aplikacji kliknij Testuj linki do 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 (Testowanie linków do aplikacji) z testowanym adresem URL i komunikatem o powodzeniu.

  4. Kliknij Uruchom test.

Jeśli mapowanie adresów URL nie jest prawidłowo skonfigurowane lub nie istnieje, w oknie Testowanie linków do aplikacji pod adresem URL 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 („wybieranie aplikacji”) i wyświetli komunikat o sukcesie w oknie Testowanie linków do aplikacji, jak pokazano na rysunku 3.

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

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