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 Ci odkryć, które treści w aplikacji są najczęściej używane, oraz ułatwić użytkownikom znajdowanie i udostępnianie treści w zainstalowanej aplikacji.

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 zostanie przypisany do aktywności wybranej w następnym kroku.

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

    Pojawi się okno edytora 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 Podgląd. Jeśli chcesz wprowadzić zmiany, kliknij Otwórz 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 pliku 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 utworzonego zamiaru:

  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 aplikacji wygeneruje plik Digital Assets 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ę wersji lub plik magazynu kluczy dla wersji produkcyjnej albo konfigurację debugowania lub plik magazynu kluczy dla wersji debugowania aplikacji. Jeśli chcesz skonfigurować wersję produkcyjną, użyj konfiguracji wersji. Jeśli chcesz przetestować kompilację, użyj konfiguracji debugowania.

  4. Kliknij Wygeneruj plik połączeń z zasobami cyfrowymi.
  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 plik protokołu Digital Asset Links został przesłany do właściwej lokalizacji.

Asystent linków aplikacji może zweryfikować plik 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ązywaniu 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, pod adresem URL w oknie Testowanie linków do aplikacji 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.