Dodaj linki aplikacji na Androida

Linki aplikacji na Androida to adresy URL HTTP, które kierują użytkowników bezpośrednio do określonych treści w aplikacji na Androida. Linki aplikacji na Androida mogą zwiększać ruch w Twojej aplikacji, pomagać w określaniu, które treści są najczęściej używane, oraz ułatwiać użytkownikom wyszukiwanie i udostępnianie treści w zainstalowanej aplikacji.

Aby dodać obsługę linków aplikacji na Androida:

  1. Utwórz filtry intencji w pliku manifestu.
  2. Dodaj kod do działań w aplikacji, aby obsługiwać linki przychodzące.
  3. Powiąż swoją aplikację i witrynę z linkami Digital Asset Links.

Asystent linków aplikacji w Android Studio upraszcza ten proces dzięki szczegółowym kreatorom, które opisaliśmy poniżej.

Więcej informacji o działaniu linków do aplikacji i ich zaletach znajdziesz w artykule o obsłudze linków aplikacji na Androida.

Dodaj filtry intencji

Asystent linków aplikacji w Android Studio może pomóc Ci w tworzeniu filtrów intencji w pliku manifestu i mapowaniu istniejących adresów URL z witryny na działania w aplikacji. Asystent dodaje też kod szablonu do każdej aktywności odpowiadającej celom.

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

  1. Wybierz Narzędzia > Asystent linków aplikacji.
  2. Kliknij Otwórz edytor mapowania URL, a następnie kliknij Dodaj u dołu listy Mapowanie adresów URL, aby dodać nowe mapowanie adresów URL.
  3. Dodaj szczegóły nowego mapowania adresów URL:

    Asystent linków 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 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 ze wszystkimi przepisami dostępnymi w ramach tej samej aktywności, a wszystkie przepisy z Twojej witryny znajdują się w tym samym katalogu /Recipe, użyj parametru pathPrefix i wpisz /Recipe. Dzięki temu adres URL http://www.Recipe-app.com/Recipe/grilled-potato-salad zostanie odwzorowany na aktywność, którą wybierzesz w następnym kroku.

    3. Wybierz Działanie, do którego adresy URL mają kierować użytkowników.
    4. Kliknij OK.

    Pojawi się okno edytora mapowania URL-i. Asystent linków aplikacji dodaje filtry intencji na podstawie mapowania adresu URL na plik 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 o filtrach intencji dla linków przychodzących.

    W głównym oknie narzędzia Asystenta linków aplikacji zobaczysz też wszystkie istniejące precyzyjne linki w pliku AndroidManifest.xml i możesz szybko naprawić wszystkie błędy konfiguracji, klikając Rozwiąż wszystkie problemy z plikiem manifestu.

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

    Uwaga: aby obsługiwać przyszłe linki bez aktualizowania aplikacji, określ mapowanie adresów URL obsługujące adresy URL, które planujesz dodać. Dodaj też adres URL ekranu głównego aplikacji, aby był widoczny w wynikach wyszukiwania.

  4. Aby sprawdzić, czy mapowanie adresów URL działa prawidłowo, wpisz adres URL w polu Sprawdź mapowanie adresu URL.

    Jeśli działa prawidłowo, komunikat o powodzeniu informuje, że wpisany adres URL jest mapowany na wybraną aktywność.

Obsługa linków przychodzących

Po sprawdzeniu, czy mapowanie adresów URL działa prawidłowo, dodaj funkcje logiczne obsługi utworzonej intencji:

  1. W Asystencie linków aplikacji kliknij Wybierz aktywność.
  2. Wybierz aktywność z listy i kliknij Wstaw kod.

Asystent linków aplikacji dodaje kod do Twojej aktywności, 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 oparte na identyfikatorze URI w appLinkData, na przykład wyświetlić odpowiednią treść. Na przykład w przypadku aplikacji do udostępniania przepisów 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ąż aplikację z witryną

Gdy skonfigurujesz obsługę adresów URL dla swojej aplikacji, Asystent linków aplikacji wygeneruje plik Digital Assets Links, który będzie służyć do powiązania Twojej witryny z aplikacją.

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

Jeśli w swojej aplikacji używasz podpisywania aplikacji przez Google Play, odcisk cyfrowy certyfikatu wygenerowany przez Asystenta linków do aplikacji zwykle nie jest zgodny z odciskiem na urządzeniach użytkowników. W takim przypadku prawidłowy fragment kodu JSON protokołu Digital Asset Links swojej aplikacji znajdziesz na koncie dewelopera w Konsoli Play w polu Release > Setup > App signing.

Aby powiązać aplikację ze stroną za pomocą Asystenta linków aplikacji, w tym narzędziu kliknij Open Digital Asset Links Generator (Otwórz generator plików Digital Asset Links) i wykonaj te czynności:

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

Rysunek 2. Wpisz informacje o swojej witrynie i aplikacji, aby wygenerować plik Digital Asset Links.

  1. Wpisz domenę witryny i identyfikator aplikacji.
  2. Aby uwzględnić w pliku Digital Asset Links obsługę logowania się jednym dotknięciem, wybierz Obsługa udostępniania danych logowania między aplikacją a witryną i wpisz adres URL logowania do Twojej witryny.Spowoduje to dodanie do pliku Digital Asset Links tego ciągu potwierdzającego, że aplikacja i witryna mają wspólne dane logowania: delegate_permission/common.get_login_creds.

  3. Określ konfigurację podpisywania lub wybierz plik magazynu kluczy.

    Pamiętaj, aby wybrać odpowiedni plik konfiguracji wersji lub plik magazynu kluczy dla kompilacji wersji albo plik konfiguracji debugowania lub plik magazynu kluczy dla kompilacji do debugowania Twojej aplikacji. Jeśli chcesz skonfigurować kompilację produkcyjną, użyj konfiguracji wersji. 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 z uprawnieniami do odczytu dla wszystkich użytkowników na stronie https://yoursite/.well-known/assetlinks.json.

    Ważne: system weryfikuje plik Digital Asset Links za pomocą szyfrowanego 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 właściwość https.

  7. Kliknij Połącz i zweryfikuj, aby upewnić się, że prawidłowy plik Digital Asset Links znajduje się w prawidłowej lokalizacji.

Więcej informacji o łączeniu witryny z aplikacją za pomocą pliku Digital Asset Links znajdziesz w artykule Deklarowanie powiązań witryn.

Testowanie linków aplikacji na Androida

Aby sprawdzić, czy linki prowadzą do właściwej aktywności, wykonaj te czynności:

  1. W Asystencie linków aplikacji kliknij Testuj linki aplikacji.
  2. W polu URL wpisz adres URL, który chcesz przetestować, np. http://przepis-aplikacja.com/przepis/grilled-salad-ziemniaczany.
  3. Rysunek 3. Okno Testuj linki 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 Test App Links pojawi się komunikat o błędzie. W przeciwnym razie Android Studio uruchamia aplikację w urządzeniu lub w emulatorze przy określonej aktywności bez wyświetlania okna wyboru aplikacji („wybór aplikacji”) i wyświetla komunikat o powodzeniu w oknie Testowanie linków aplikacji, jak widać na ilustracji 3.

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

Aby przetestować linki aplikacji na Androida za pomocą Asystenta linków aplikacji, musisz mieć połączone urządzenie lub dostępne urządzenie wirtualne z Androidem 6.0 (poziom interfejsu API 23) lub nowszym. Aby dowiedzieć się więcej, przeczytaj, jak podłączyć urządzenie lub utworzyć AVD.