Deep links
Deep link виконує дві дії одночасно: відкриває ціль безпосередньо в нативному додатку, якщо він встановлений, або перенаправляє до App Store чи Play Store в іншому випадку. Elido реалізує це на основі двох існуючих функцій:
- Smart links для маршрутизації на основі ОС.
- Файли Universal Links / App Links, що обслуговуються з вашого власного домену, щоб iOS та Android довіряли редиректу для обходу браузера.
Вам не потрібен спеціальний об’єкт «deep link» - будь-яке коротке посилання з правильними правилами та відповідними файлами у директорії .well-known є таким.
Крок 1 - Правила з таргетингом на ОС
Додайте targeting_rules, які вибирають URL магазину за ОС, залишаючи destination_url як запасний варіант для десктопів:
curl -X PATCH \
https://api.elido.app/v1/workspaces/1/links/42 \
-H "Authorization: Bearer $ELIDO_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"destination_url": "https://example.com/get-the-app",
"targeting_rules": [
{
"label": "iOS",
"match": { "os": ["ios"] },
"destination_url": "https://apps.apple.com/app/id1234567890"
},
{
"label": "Android",
"match": { "os": ["android"] },
"destination_url": "https://play.google.com/store/apps/details?id=com.example.app"
}
]
}'Це саме по собі забезпечує перенаправлення до магазину. Щоб відкривати встановлений додаток безпосередньо без переходу в браузер, налаштуйте файли асоціації з ОС.
Крок 2 - Apple Universal Links
Розмістіть JSON-документ apple-app-site-association у корені вашого власного домену. Elido обслуговує його за вас, коли ви завантажуєте його через domains API:
curl -X PATCH \
https://api.elido.app/v1/workspaces/1/domains/42/app-links \
-H "Authorization: Bearer $ELIDO_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"apple_app_site_association": {
"applinks": {
"apps": [],
"details": [
{
"appID": "TEAMID.com.example.app",
"paths": ["/*"]
}
]
}
}
}'Після цього файл буде доступний за адресою:
https://go.example.com/.well-known/apple-app-site-associationiOS завантажує його під час першого встановлення (і періодично перевіряє повторно) - після підтвердження натискання на https://go.example.com/... відкриватимуть ваш додаток замість Safari.
Крок 3 - Android App Links
Та сама ідея з форматом assetlinks для Android:
curl -X PATCH \
https://api.elido.app/v1/workspaces/1/domains/42/app-links \
-H "Authorization: Bearer $ELIDO_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"android_assetlinks": [
{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.example.app",
"sha256_cert_fingerprints": ["AB:CD:EF:..."]
}
}
]
}'Доступний за адресою:
https://go.example.com/.well-known/assetlinks.jsonAndroid підхоплює це під час встановлення додатка. Перевірте за допомогою adb shell pm get-app-links com.example.app.
Крок 4 - Власні URL-схеми (опціонально)
Якщо ваш додаток також реєструє схему myapp://, ви можете направляти до неї безпосередньо через ціль Universal Link / App Link - більшість нативних SDK (Branch, Adjust, AppsFlyer) приймають обидва варіанти.
Типова структура
{
"destination_url": "https://example.com/web-fallback",
"targeting_rules": [
{ "match": { "os": ["ios"] }, "destination_url": "https://apps.apple.com/app/id123" },
{ "match": { "os": ["android"] }, "destination_url": "https://play.google.com/store/apps/details?id=com.example.app" }
]
}- Додаток встановлено → ОС відкриває додаток через Universal/App Links.
- Додаток не встановлено → URL магазину через правило smart-link.
- Десктоп / інше → веб-версія через
destination_url.
Тестування
- iOS:
xcrun simctl openurl booted https://go.example.com/Ab3xQу симуляторі зі встановленим додатком. - Android:
adb shell am start -a android.intent.action.VIEW -d "https://go.example.com/Ab3xQ". - Десктоп: відкрийте посилання в Chrome - ви повинні потрапити на веб-версію.