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