Диплинки: как открыть приложение из короткой ссылки
Эта страница помогает настроить два понятных сценария. Первый сценарий открывает приложение через обычную HTTPS-ссылку. Второй сценарий открывает приложение через custom scheme вродеsocialmesh://.
Universal Links
Custom scheme
Fallback
Сценарий 1. Universal Links и App Links
Этот сценарий подходит для бренда со своим мобильным приложением. Клиент нажимает короткую ссылкуhttps://go.brand.ru/s/summer. Телефон открывает приложение. Когда приложения нет, клиент остается на web-странице.
Что сделать в Kratk
- 1Откройте раздел "Домены" в Kratk.
- 2Добавьте свой домен, например go.brand.ru.
- 3Дождитесь статуса "Подтвержден".
- 4В настройках домена заполните Apple Team ID и iOS Bundle ID.
- 5В настройках домена заполните Android package name и SHA-256 fingerprint.
- 6Передайте мобильному разработчику короткую ссылку вида https://go.brand.ru/s/summer.
- 7Попросите разработчика открыть экран приложения по данным из resolve endpoint.
Что делает мобильная команда
- 1iOS-разработчик включает Associated Domains в Apple Developer и Xcode.
- 2iOS-разработчик добавляет entitlement applinks:go.brand.ru.
- 3Android-разработчик добавляет intent-filter для https://go.brand.ru/s/*.
- 4Android-разработчик включает android:autoVerify="true".
- 5Приложение принимает URL, достает короткий код и вызывает resolve endpoint.
- 6Приложение открывает нужный экран и отправляет app-open событие.
Пример настройки домена
go.brand.ruABCDE12345com.brand.appcom.brand.appAA:BB:CC:DD:EE:FFПример короткой ссылки
https://go.brand.ru/s/summerpromo{ "promoId": "summer2026" }https://brand.ru/promo/summer2026Проверка
- 1Откройте https://go.brand.ru/.well-known/apple-app-site-association в браузере.
- 2Убедитесь, что открывается JSON.
- 3Откройте https://go.brand.ru/.well-known/assetlinks.json в браузере.
- 4Убедитесь, что открывается JSON-массив.
- 5Установите приложение на телефон.
- 6Откройте короткую ссылку https://go.brand.ru/s/summer.
- 7Проверьте, что телефон открыл приложение на нужном экране.
Что приложение запрашивает у Kratk
GET https://go.brand.ru/api/deep-links/resolve?url=https%3A%2F%2Fgo.brand.ru%2Fs%2Fsummer{
"shortCode": "summer",
"appRoute": "promo",
"appRouteParams": {
"promoId": "summer2026"
}
}POST https://go.brand.ru/api/deep-links/events/app-open
Content-Type: application/json
{
"shortCode": "summer",
"platform": "ios"
}Сценарий 2. Custom scheme
Этот сценарий подходит для готовой ссылки приложения видаsocialmesh://node/abc123. Kratk открывает маленькую страницу, пробует запустить приложение и затем ведет клиента на fallback.
Что заполнить в короткой ссылке
- 1Включите "Диплинки" в форме короткой ссылки.
- 2В поле App deep link URL вставьте ссылку приложения, например socialmesh://node/abc123.
- 3В Default fallback вставьте web-страницу, например https://meshtastic.org/.
- 4Сохраните ссылку.
- 5Откройте короткую ссылку на телефоне.
- 6Телефон попробует открыть приложение. После ошибки клиент попадет на fallback страницу.
Пример для Meshtastic
https://kk.cloudyhost.space/s/TE2HXQO9socialmesh://node/eyJub2RlTnVtIjo0ODc5Mzc4NCJ9https://meshtastic.org/Важный момент про iPhone
iPhone показывает системное окно перед открытием custom scheme. Kratk не управляет этим окном. После системной ошибки клиент попадает на fallback-страницу.
Как выглядит путь пользователя
- 1Пользователь нажимает https://kk.cloudyhost.space/s/TE2HXQO9.
- 2Kratk показывает страницу "Открываем приложение".
- 3Телефон пробует открыть socialmesh://node/eyJub2RlTnVtIjo0ODc5Mzc4NCJ9.
- 4Приложение открывается на нужном экране.
- 5При отсутствии приложения клиент попадает на https://meshtastic.org/.
Готовый текст для мобильного разработчика
Скопируйте этот блок в задачу мобильной команде.
Нужно подключить диплинки для домена go.brand.ru.
iOS:
- включить Associated Domains;
- добавить applinks:go.brand.ru;
- обработать входящий URL;
- вызвать resolve endpoint;
- открыть экран из appRoute и appRouteParams;
- отправить app-open событие.
Android:
- добавить intent-filter для https://go.brand.ru/s/*;
- включить android:autoVerify="true";
- обработать Intent data URL;
- вызвать resolve endpoint;
- открыть экран из appRoute и appRouteParams;
- отправить app-open событие.