Что такое app links?

Посмотреть в Telegram: @AndroidSobes/66
App Links – это механизм создания и обработки Deep Link, введенный в API level 23. При использовании App Links, ОС сопоставляет URL веб-сайта с установленным приложением и открывает приложение. По сути результат обработки App Link такой же, как у Deep Link в этом посте, но для App Link не нужно реализовывать описанный алгоритм.

Для работы с App Links необходимо сделать следующее:

1. Добавить intent-filter с атрибутом android:autoVerify="true" и элементом data, содержащим scheme="https" и host="<your-website>". Смотрите пример на скриншоте.
Атрибут autoVerify говорит системе, что нужно проверить ассоциацию указанного в фильтре сайта с приложением.

2. Добавить верификацию приложения на сайте. Для этого нужно сделать доступным Digital Asset Links файл по адресу https://<your-website>/.well-known/assetlinks.json. Формат этого файла описан в документации.

App Links работает следующим образом.
Пользователь устанавливает приложение с intent-filter, содержащим атрибут autoVerify=true для определенного сайта. Система проверяет файл assetlinks.json на сайте, заданном в intent-filter. Если файл assetlinks.json содержит ассоциацию с приложением, то система регистрирует App Link. Ассоциация задается через appId и SHA-256 отпечаток ключа, которым подписано приложение.
Когда пользователь кликает на ссылку, система проверяет, есть ли зарегистрированный App Link на данный URL, и открывает приложение.

Механизм App Links лучше обычных Deep Links с кастомной схемой, которые описаны в предыдущих постах, тем, что устанавливает связь приложения с веб-сайтом. Поэтому когда пользователь кликает на App Links, открывается либо приложение, либо сайт, если приложение не установлено.
При использовании кастомной схемы, несколько приложений могут зарегистрировать intent-filter с одинаковой схемой. В этом случае система будет показывать пользователю диалог выбора приложения.

Подробнее про App Links в документации.