Добавьте ссылки на приложения Android

Ссылки на приложения Android — это HTTP-URL-адреса, которые перенаправляют пользователей непосредственно к определённому контенту вашего приложения Android. Ссылки на приложения Android могут привлечь больше трафика в ваше приложение, помочь вам определить, какой контент приложения используется чаще всего, и упростить пользователям поиск и обмен контентом в установленном приложении.

Чтобы добавить поддержку ссылок на приложения Android:

  1. Создайте фильтры намерений в вашем манифесте.
  2. Добавьте код в действия вашего приложения для обработки входящих ссылок.
  3. Свяжите свое приложение и свой веб-сайт с помощью ссылок на цифровые активы.

Помощник по ссылкам приложений в Android Studio упрощает процесс с помощью пошагового мастера, как описано ниже.

Дополнительную информацию о том, как работают ссылки на приложения и какие преимущества они предлагают, можно найти в статье Обработка ссылок на приложения Android .

Добавить фильтры намерений

Помощник по ссылкам приложений в Android Studio поможет вам создавать фильтры намерений в манифесте и сопоставлять существующие URL-адреса вашего сайта с действиями в приложении. Помощник по ссылкам приложений также добавляет шаблонный код в каждое соответствующее действие для обработки намерений.

Чтобы добавить фильтры намерений и обработку URL-адресов, выполните следующие действия:

  1. Выберите Инструменты > Помощник по ссылкам приложений .
  2. Нажмите «Открыть редактор сопоставления URL-адресов» , а затем нажмите « Добавить». в нижней части списка сопоставлений URL-адресов , чтобы добавить новое сопоставление URL-адресов.
  3. Добавьте сведения о новом сопоставлении URL-адресов:

    Помощник по ссылкам приложений проведет вас через базовые этапы сопоставления URL-адресов.

    Рисунок 1. Добавьте основные сведения о структуре ссылок вашего сайта, чтобы сопоставить URL-адреса с действиями в вашем приложении.

    1. Введите URL-адрес вашего веб-сайта в поле Хост .
    2. Добавьте path , pathPrefix или pathPattern для URL-адресов, которые вы хотите сопоставить.

      Например, если у вас есть приложение для обмена рецептами, где все рецепты доступны в одном и том же действии, а все рецепты на вашем сайте находятся в одном каталоге /recipe , используйте pathPrefix и введите /recipe. Таким образом, URL-адрес http://www.recipe-app.com/recipe/grilled-potato-salad будет сопоставлен с действием, выбранным на следующем шаге.

    3. Выберите действие, на которое URL-адреса должны перенаправлять пользователей.
    4. Нажмите ОК.

    Откроется окно редактора сопоставления URL-адресов. Помощник по ссылкам приложений добавит фильтры намерений на основе сопоставления URL-адресов в файл AndroidManifest.xml и выделит изменения в поле «Предварительный просмотр» . Если вы хотите внести изменения, нажмите «Открыть AndroidManifest.xml», чтобы отредактировать фильтр намерений. Подробнее см. в разделе Фильтры намерений для входящих ссылок .

    Главное окно инструмента App Links Assistant также отображает все существующие глубокие ссылки в файле AndroidManifest.xml и позволяет быстро исправить любые неправильные конфигурации, нажав «Исправить все проблемы манифеста» .

    Помощник по ссылкам приложений позволяет исправить явные ошибки конфигурации.

    Примечание: Чтобы обеспечить поддержку будущих ссылок без обновления приложения, определите сопоставление URL-адресов, которое поддерживает URL-адреса, которые вы планируете добавить. Также укажите URL-адрес главного экрана приложения, чтобы он отображался в результатах поиска.

  4. Чтобы проверить правильность работы сопоставления URL-адресов, введите URL-адрес в поле «Проверка сопоставления URL-адресов» .

    Если все работает правильно, сообщение об успешном завершении покажет, что введенный вами URL-адрес соответствует выбранному вами действию.

Обработка входящих ссылок

Убедившись, что сопоставление URL-адресов работает правильно, добавьте логику для обработки созданного вами намерения:

  1. Нажмите «Выбрать действие» в помощнике по ссылкам приложений.
  2. Выберите действие из списка и нажмите «Вставить код» .

Помощник по ссылкам приложений добавляет код в вашу активность, подобный следующему:

Котлин

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

Ява

@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();
    ...
}

Этот код сам по себе не является полным. Теперь вам необходимо выполнить действие на основе URI в appLinkData , например, отобразить соответствующий контент. Например, для приложения для обмена рецептами ваш код может выглядеть следующим образом:

Котлин

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)
                    }
        }
    }
}

Ява

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);
    }
}

Свяжите свое приложение с вашим веб-сайтом

После настройки поддержки URL-адресов для вашего приложения помощник по ссылкам приложений создает файл ссылок на цифровые активы, который вы можете использовать для связи своего веб-сайта с приложением .

В качестве альтернативы использованию файла ссылок на цифровые активы вы можете связать свой сайт и приложение в Search Console .

Если вы используете функцию Play App Signing для своего приложения, то отпечаток сертификата, созданный App Links Assistant, обычно не совпадает с отпечатком сертификата на устройствах пользователей. В этом случае вы можете найти правильный JSON-фрагмент Digital Asset Links для своего приложения в учётной записи разработчика Play Console в разделе Release > Setup > App signing .

Чтобы связать свое приложение и веб-сайт с помощью помощника по связям приложений, нажмите «Открыть генератор файлов ссылок на цифровые активы» в помощнике по связям приложений и выполните следующие действия.

Помощник по ссылкам приложений проведет вас через базовые этапы сопоставления URL-адресов.

Рисунок 2. Введите данные о вашем сайте и приложении для создания файла ссылок на цифровые активы.

  1. Введите домен вашего сайта и идентификатор вашего приложения .
  2. Чтобы включить поддержку входа в один клик в файле ссылок на цифровые активы, выберите Поддержка обмена учетными данными между приложением и веб-сайтом и введите URL-адрес входа вашего сайта. Это добавит следующую строку в файл ссылок на цифровые активы, объявляющую, что ваше приложение и веб-сайт используют общие учетные данные для входа: delegate_permission/common.get_login_creds .

  3. Укажите конфигурацию подписи или выберите файл хранилища ключей .

    Убедитесь, что вы выбрали правильный файл конфигурации выпуска или хранилища ключей для релизной сборки или файл конфигурации отладки или хранилища ключей для отладочной сборки вашего приложения. Если вы хотите настроить производственную сборку, используйте конфигурацию выпуска. Если вы хотите протестировать сборку, используйте конфигурацию отладки.

  4. Нажмите «Создать файл ссылок на цифровые активы» .
  5. После того как Android Studio сгенерирует файл, нажмите «Сохранить файл» , чтобы загрузить его.
  6. Загрузите файл assetlinks.json на свой сайт, предоставив всем доступ для чтения по адресу https:// yoursite /.well-known/assetlinks.json .

    Важно: система проверяет файл ссылок на цифровые активы по зашифрованному протоколу HTTPS. Убедитесь, что файл assetlinks.json доступен по HTTPS-соединению, независимо от того, включает ли фильтр намерений вашего приложения https .

  7. Нажмите «Связать и проверить» , чтобы подтвердить, что вы загрузили правильный файл ссылок на цифровые активы в правильное место.

Помощник по ссылкам приложений может проверить файл ссылок на цифровые активы, который должен быть опубликован на вашем сайте. Для каждого домена, указанного в файле манифеста, Помощник анализирует файл на вашем сайте, выполняет проверку и предоставляет подробное объяснение того, как исправить ошибки.

Дополнительную информацию о связывании вашего веб-сайта с приложением через файл ссылок на цифровые активы см. в разделе Объявление ассоциаций веб-сайтов .

Протестируйте ссылки на свои приложения для Android

Чтобы убедиться, что ваши ссылки открывают правильную активность, выполните следующие действия:

  1. В помощнике по ссылкам приложений нажмите кнопку Проверить ссылки приложений .
  2. В поле URL введите URL-адрес, который вы хотите протестировать; например, http://recipe-app.com/recipe/grilled-potato-salad .
  3. Рисунок 3. Диалоговое окно «Проверка ссылок приложения», отображающее проверяемый URL-адрес и сообщение об успешном завершении.

  4. Нажмите кнопку «Выполнить тест» .

Если сопоставление URL настроено неправильно или отсутствует, под URL-адресом в диалоговом окне «Тестирование ссылок приложений» появится сообщение об ошибке. В противном случае Android Studio запустит ваше приложение на устройстве или эмуляторе в указанной активности, не отображая диалоговое окно разрешения неоднозначностей («выбор приложения»), и отобразит сообщение об успешном завершении в диалоговом окне «Тестирование ссылок приложений» , как показано на рисунке 3.

Если Android Studio не может запустить приложение, в окне «Выполнить » Android Studio появляется сообщение об ошибке.

Для тестирования ссылок приложений Android через помощник по ссылкам приложений необходимо подключить устройство или иметь доступное виртуальное устройство под управлением Android 6.0 (уровень API 23) или выше. Подробнее см. в статье о подключении устройства или создании AVD .