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 в
документации.