Hola, Amigos! На связи Павел Гершевич, Mobile Team Lead в Amiga. При настройке диплинков в наше приложение иногда требуется сделать так, чтобы только определенные ссылки вели в приложение и наоборот. В этой небольшой серии постов мы разберем, как поступать в таких ситуациях.
Начнем со случаев, когда переход должен быть только по определенным путям.
Как и для любых других диплинков, настройка будет внутри проекта для Android и в файле
apple-app-site-association для iOS.
Для Android нужно открыть файл
AndroidManifest.xml вашего проекта и там добавить код (или изменить его, если вы уже настраивали диплинки до этого):
<intent-filter android:autoVerify=”true” tools:targetApi=”m”>
<action android:name=”android.intent.action.VIEW” />
<category android:name=”android.intent.category.DEFAULT />
<category android:name=”android.intent.category.BROWSABLE />
<data
android:scheme=”https”
android:host=”example.com”
android:pathPrefix=”/sample”
/>
</intent-filter>
Такой код позволит нам открывать только страницы, чей URL начинается с
https://example.com/sample.
Используйте
path, чтобы указать только 1 ссылку:
<data android:path="/sample" />
Используйте
pathSuffix, если нужно указать только окончание URL:
<data android:pathSuffix="ample" />
Если вы только настраиваете диплинки в ваше приложение, то не забудьте подготовить и загрузить на ваш сайт файл
assetlinks.json. Как он выглядит и создается рассказано в этой
статье, которую мы переводили для вас.
Давайте сделаем то же самое и для iOS. Откроем или создадим файл
apple-app-site-association. Тут нас интересует массив
components внутри объекта
details. Существует несколько вариантов реализации:
Если нужно сделать переход именно на эту страницу:
{
“/”: “/sample”,
“comment”: “Откроет только https://example.com/sample”
}
Если можно позволить переход на любого потомка этой страницы:
{
“/”: “/sample/*”,
“comment”: “Откроет также https://example.com/sample/first”
}
И если в пути содержится часть, но мы не знаем ее точного места:
{
“#”: “ample”,
“comment”: “Откроет также https://example.com/mySample”
}
После этого нужно загрузить этот файл на сервер и подождать, пока AASA-Bot заберет его на CDN компании Apple. Обычно это занимает до суток.