Ссылки в Android-приложениях — это HTTP-адреса, которые перенаправляют пользователей непосредственно к определенному контенту в вашем Android-приложении. Ссылки в Android-приложениях могут увеличить трафик вашего приложения, помочь вам определить, какой контент в приложении используется чаще всего, и упростить пользователям поиск и обмен контентом в установленном приложении.
Для добавления поддержки ссылок на приложения Android:
- Создайте фильтры намерений в вашем манифесте.
- Добавьте код в активности вашего приложения для обработки входящих ссылок.
- Свяжите свое приложение и свой веб-сайт с сервисом Digital Asset Links.
В Android Studio функция App Links Assistant упрощает этот процесс благодаря пошаговому мастеру, описанному ниже.
Для получения более подробной информации о том, как работают ссылки на приложения и какие преимущества они предоставляют, прочитайте статью «Работа со ссылками на приложения Android» .
Добавить фильтры намерений
Инструмент App Links Assistant в Android Studio поможет вам создать фильтры намерений в манифесте и сопоставить существующие URL-адреса вашего веб-сайта с действиями в вашем приложении. App Links Assistant также добавляет шаблонный код в каждое соответствующее действие для обработки намерения.
Чтобы добавить фильтры намерений и обработку URL-адресов, выполните следующие действия:
- Выберите Инструменты > Помощник по ссылкам на приложения .
- Нажмите «Открыть редактор сопоставления URL-адресов» , а затем нажмите «Добавить».
В нижней части списка сопоставления URL-адресов добавьте новое сопоставление URL-адресов. Добавьте подробности для нового сопоставления URL-адресов:

Рисунок 1. Добавьте основные сведения о структуре ссылок вашего сайта, чтобы сопоставить URL-адреса с действиями в вашем приложении.
- Введите URL-адрес вашего сайта в поле «Хост» .
Добавьте
path,pathPrefixилиpathPatternдля URL-адресов, которые вы хотите сопоставить.Например, если у вас есть приложение для обмена рецептами, где все рецепты доступны в одном и том же действии, а рецепты вашего соответствующего веб-сайта находятся в одной директории /recipe , используйте pathPrefix и введите /recipe. Таким образом, URL-адрес http://www.recipe-app.com/recipe/grilled-potato-salad будет соответствовать действию, которое вы выберете на следующем шаге.
- Выберите вид деятельности, на который должны вести URL-адреса.
- Нажмите ОК.
Открывается окно редактора сопоставления URL-адресов. Помощник по ссылкам приложения добавляет фильтры намерений на основе сопоставления URL-адресов в файл
AndroidManifest.xmlи выделяет изменения в поле «Предварительный просмотр» . Если вы хотите внести какие-либо изменения, нажмите «Открыть AndroidManifest.xml» , чтобы отредактировать фильтр намерений. Для получения дополнительной информации см. раздел «Фильтры намерений для входящих ссылок» .В главном окне инструмента «Помощник по ссылкам приложений» также отображаются все существующие прямые ссылки в файле
AndroidManifest.xmlи вы можете быстро исправить любые ошибки конфигурации, нажав кнопку «Исправить все проблемы с манифестом» .
Примечание: Чтобы обеспечить поддержку ссылок в будущем без обновления приложения, определите сопоставление URL-адресов, поддерживающее URL-адреса, которые вы планируете добавить. Также укажите URL-адрес главного экрана вашего приложения, чтобы он отображался в результатах поиска.
Чтобы убедиться в правильности сопоставления URL-адресов, введите URL-адрес в поле «Проверить сопоставление URL-адресов» .
Если все работает правильно, в сообщении об успешном завершении будет указано, что введенный вами URL-адрес соответствует выбранному вами действию.
Обработка входящих ссылок
После того, как вы убедитесь в корректности сопоставления URL-адресов, добавьте логику для обработки созданного вами намерения:
- В помощнике по ссылкам на приложения нажмите «Выбрать действие» .
- Выберите действие из списка и нажмите «Вставить код» .
App Links Assistant добавляет в ваше приложение код, аналогичный следующему:
Котлин
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(); ... }
Этот код сам по себе неполный. Теперь вам необходимо выполнить действие на основе 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) } } } }
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); } }
Свяжите свое приложение со своим веб-сайтом
После настройки поддержки URL-адресов для вашего приложения, App Links Assistant сгенерирует файл ссылок на цифровые активы, который вы можете использовать для связывания вашего веб-сайта с вашим приложением .
В качестве альтернативы использованию файла ссылок на цифровые активы вы можете связать свой сайт и приложение в Search Console .
Если вы используете функцию подписи приложений Play для своего приложения, то отпечаток сертификата, созданный с помощью App Links Assistant, обычно не совпадает с отпечатком на устройствах пользователей. В этом случае вы можете найти правильный фрагмент JSON-кода Digital Asset Links для вашего приложения в своей учетной записи разработчика Play Console в разделе Release > Setup > App signing .
Чтобы связать ваше приложение и веб-сайт с помощью App Links Assistant, нажмите «Открыть генератор файлов ссылок на цифровые активы» в App Links Assistant и выполните следующие действия:

Рисунок 2. Введите подробную информацию о вашем сайте и приложении, чтобы создать файл ссылок на цифровые активы.
- Введите домен вашего сайта и идентификатор вашего приложения .
Чтобы добавить поддержку входа в систему одним касанием в файл Digital Asset Links, выберите «Поддержка обмена учетными данными между приложением и веб-сайтом» и введите URL-адрес входа на ваш сайт. Это добавит следующую строку в файл Digital Asset Links, указывающую на то, что ваше приложение и веб-сайт используют общие учетные данные для входа:
delegate_permission/common.get_login_creds.Укажите параметры подписи или выберите файл хранилища ключей .
Убедитесь, что вы выбрали правильный файл конфигурации релиза или хранилища ключей для сборки релиза или файл конфигурации отладки или хранилища ключей для отладочной сборки вашего приложения. Если вы хотите настроить сборку для продакшена, используйте конфигурацию релиза. Если вы хотите протестировать свою сборку, используйте конфигурацию отладки.
- Нажмите «Сгенерировать файл ссылок на цифровые активы» .
- После того, как Android Studio сгенерирует файл, нажмите «Сохранить файл» , чтобы загрузить его.
- Загрузите файл
assetlinks.jsonна свой сайт с правами чтения для всех пользователей по адресуhttps:// yoursite /.well-known/assetlinks.json.Важно: система проверяет файл ссылок на цифровые активы по зашифрованному протоколу HTTPS. Убедитесь, что файл
assetlinks.jsonдоступен по протоколу HTTPS, независимо от того, включает ли фильтр намерений вашего приложенияhttps. - Click Link and Verify to confirm that you've uploaded the correct Digital Asset Links file to the correct location.
App Link Assistant может проверить файл ссылок на цифровые активы, который должен быть опубликован на вашем веб-сайте. Для каждого домена, указанного в файле манифеста, Assistant анализирует файл на вашем веб-сайте, выполняет проверки на валидность и предоставляет подробное объяснение того, как исправить любые ошибки.
Узнайте больше о связывании вашего веб-сайта с вашим приложением через файл «Ссылки на цифровые активы» в разделе «Объявление о связывании веб-сайтов» .
Проверьте ссылки вашего Android-приложения.
Чтобы убедиться, что ваши ссылки открывают нужное приложение, выполните следующие шаги:
- В помощнике по настройке ссылок на приложения нажмите «Проверить ссылки на приложения» .
- Введите URL-адрес, который вы хотите протестировать, в поле URL ; например, http://recipe-app.com/recipe/grilled-potato-salad .
- Нажмите «Запустить тест» .

Рисунок 3. Диалоговое окно «Проверка ссылок приложения» , показывающее проверяемый URL-адрес и сообщение об успешном завершении.
Если сопоставление URL-адресов настроено неправильно или отсутствует, под URL-адресом в диалоговом окне «Проверка ссылок приложения» появится сообщение об ошибке. В противном случае Android Studio запустит ваше приложение на устройстве или эмуляторе в указанной активности без отображения диалогового окна уточнения («выбор приложения») и покажет сообщение об успешном завершении в диалоговом окне «Проверка ссылок приложения» , как показано на рисунке 3.
Если Android Studio не может запустить приложение, в окне «Выполнить» Android Studio появится сообщение об ошибке.
Для проверки работы функции Android App Links через App Links Assistant необходимо подключить устройство или создать виртуальное устройство под управлением Android 6.0 (уровень API 23) или выше. Более подробную информацию можно найти в разделе о подключении устройства или создании виртуального устройства (AVD ).