Hola, Amigos! С вами Антон Мартышков, Flutter-dev Amiga. В прошлом посте я рассказал про Deep Links для Android и Custom Scheme Links для iOS. Сегодня расскажу об их продвинутых версиях — App Links для Android и Uni Links для iOS.
Основное их отличие от предыдущих это:
- немного сложнее настроить, чем просто диплинки;
- при отсутствии приложения на устройстве, которое должно открываться по диплинку, откроется магазин приложений с страницей вашего приложения.
Android
1. Для работы с App Links у вас уже должно быть подписанное приложение и аккаунт разработчика в Google Play Console. В нем необходимо перейти в setup - app-integrity, там найти sha256-ключ для конфиг-файла ниже.
2. Далее создаем новую папку .well-known в корне вашего сайта и добавляем туда файл assetlinks.json, его код ниже. Не забудьте заменить com.example на имя пакета вашего приложения:
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.example",
"sha256_cert_fingerprints":
["Ваш - sha256_cert_fingerprints"]
}
}]
. Проверьте, что перейдя по ссылке типа - https://customdomain.com/.well-known/assetlinks.json вы видете содержимое файла.3. В файле android/app/src/main/AndroidManifest.xml в блок activity необходимо такой intent-filter:
<intent-filter android:autoVerify="true">android:scheme — указывается https
<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" />
<data android:host="customdomain.com" />
</intent-filter>
android:host — указывается имя хоста
Протестировать работу этого диплинка можно командой
adb shell am start -a android.intent.action.VIEW -d "https://customdomain.com" your-app-package-name.
iOS
1. Чтобы работать с Uni Links у вас должен быть аккаунт разработчика и сайта с https-схемой, куда позже можно закинуть конфиг файл - apple-app-site-association.
В консоле разработчика нужно включить Identifiers-> Associated Domains - enabled
Далее в Xcode перейти в Capabilities - Associated Domains и добавить новый домен наподобие этого: applinks:customdomain.com
Где applinks так и пишем, ничего не меняем, а customdomain.com — ваш сайт без https://.
2. Создаем файл apple-app-site-association (его код ниже) и кладем в уже знакомую нам .well-known папку в корневом каталоге вашего сайта.
{
"applinks": {
"apps": [],
"details": [
{
"appID": "<TeamId>.<BundleId>",
"paths": [ "*" ]
}
]
}
}
https://branch.io/resources/aasa-validator/ — этот инструмент подскажет вам, все ли правильно там положилось и доступно ли это для Apple.Последние гайдлайны по этому файлу на iOS здесь. TeamId можно найти по ссылке, а BundleId в Xcode.
"paths": [ "*" ] значит, что по любой ссылке вашего сайта будет открываться ваше приложение, как изменить такое поведение описано здесь.
Протестировать приложение можно командой xcrun simctl openurl booted, но учтите, что Apple может сделать привязку вашего приложения с сайтом не сразу, они предупреждают за сутки.