Как создавать Deep Link с помощью DyLy

⏱️4 мин
Поделиться:

DyLy — это сервис, который сокращает URL и упрощает создание Deep Link. В этой статье мы объясним, как эффективно создавать Deep Link с помощью DyLy.

Что такое Deep Link

Deep Link — это механизм, который при переходе по ссылке открывает приложение напрямую, а не в браузере. Если приложение не установлено, пользователь попадает в магазин приложений, а после установки открывается нужная страница.

Apple официально поддерживает «плавный переход из браузера в приложение» с помощью Universal Links, а Google обеспечивает аналогичный опыт с Android App Links. Как сказано в руководстве Apple по Universal Links и документации Google по Android App Links, Deep Link не только улучшает пользовательский опыт, но и повышает безопасность и конверсию.

Сценарии использования

Deep Link можно применять по-разному.

Прямые ссылки на контент (например, видео)

Можно поделиться ссылкой в соцсетях и направить пользователя сразу к конкретному контенту. В вебе это привычно; Deep Link позволяет мобильному приложению так же мгновенно открывать нужный раздел. Дополнительно можно добавлять параметры запроса, чтобы, например, собирать статистику по источникам трафика.

Пригласительные ссылки

Deep Link подходит для приглашения пользователей в группу или другой раздел приложения. Когда приглашённый нажимает на ссылку, приложение открывается и запускает процесс приглашения. Если приложение не установлено, пользователь перенаправляется в магазин, а после установки процесс продолжается.

Перенаправления

Если нужно указать приложение как конечную точку перенаправления в OAuth или похожем потоке, можно использовать собственную схему (например, myapp://), но есть риск перехвата данных. Через Deep Link редирект можно безопасно принять прямо в приложении.

Практическая часть

Рассмотрим, как реализовать Deep Link на практике. Сервисов для этого много, но в этой статье мы используем DyLy.

Создание метаданных

Нужно связать домен с приложением. Подробности смотрите в официальной документации Apple и официальной документации Google. По сути, необходимо разместить в интернете endpoint, подтверждающий владение доменом и связь с приложением, чтобы Apple и Google могли это проверить.

Достаточно вернуть JSON в требуемом формате. Это можно сделать самостоятельно (например, разместив файл в S3), но DyLy предлагает удобный функционал для этого.

DyLy позволяет создать так называемый JSON link — по ссылке возвращается указанный JSON. Через API можно отправить такой запрос.

bash
1curl -X POST "https://dyly-api.lilacwells.com/url/api/v1/links" \
2 -H "Authorization: Basic ${YOUR_CREDENTIALS}" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "type": "json",
6 "projectId": "your-project-id",
7 "path": ".well-known/apple-app-site-association",
8 "rawJson": {
9 "applinks": {
10 "apps": [],
11 "details": [
12 {
13 "appIDs": ["TEAM123.com.example.app"],
14 "paths": [
15 "NOT /_/*",
16 "NOT /deferred-params",
17 "/*"
18 ]
19 }
20 ]
21 }
22 }
23 }'

Настройка приложения

Далее настройте приложения согласно требованиям каждой платформы.

iOS

В Xcode добавьте Associated Domains в разделе Signing & Capabilities и зарегистрируйте домен, например applinks:example.com.

Android

Добавьте <intent-filter android:autoVerify="true"> в AndroidManifest.xml и включите проверку домена через android:autoVerify.

Eсли пользователь открывает ссылку в браузере, можно настроить перенаправление на любой URL.

Создание ссылки

Наконец, создайте ссылку в DyLy. Если указать type как deep, будет создан Deep Link, как в примере ниже.

bash
1curl -X POST "https://dyly-api.lilacwells.com/url/api/v1/links" \
2 -H "Authorization: Basic ${YOUR_CREDENTIALS}" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "type": "deep",
6 "projectId": "your-project-id",
7 "path": "groups/awesome-group",
8 "destinationUrl": "https://apps.apple.com/app/yourapp/id123456",
9 "jwtClaims": {
10 "invitationId": "inv-789xyz",
11 "invitedBy": "user-123",
12 "groupId": "awesome-group",
13 "groupName": "Awesome Group",
14 "permissions": "member",
15 "timestamp": 1735894404
16 },
17 "jwtExpiresIn": 300,
18 "expiresIn": 2592000,
19 "keyProtected": false,
20 "oneTime": false
21 }'

Значения в jwtClaims попадают в JWT, поэтому обращайтесь с ними осторожно.

После создания Deep Link сервис DyLy возвращает ссылку с JWT в параметре запроса.

Обработка ссылки в приложении

Когда пользователь нажимает на ссылку, приложение её получает. Далее действуйте по следующему плану.

Проверка JWT

Убедитесь, что ссылка действительно выдана DyLy.

Для начала кратко напомним, что такое JWT. JWT — это, упрощённо, JSON с подписью. Проверив подпись, вы подтверждаете издателя и убеждаетесь, что данные не изменены.

Любой может создать ссылку, поэтому важно отличить неофициальные ссылки. Официальные ссылки подписаны приватным ключом DyLy; проверив подпись, приложение удостоверяется в подлинности ссылки и неизменности параметров.

DyLy использует стандартный механизм JWT, поэтому можно применять существующие библиотеки для проверки подписи.

Таким образом, приложение должно сначала проверить JWT при получении ссылки.

Проверка параметров

После успешной проверки подписи извлеките параметры и выполните нужную логику.

Например, для пригласительной ссылки это может быть ID группы или другие идентификаторы.

Помните, что JWT хоть и подписан, но не зашифрован (существуют зашифрованные JWT, но это отдельный формат).

Это значит, что любой может прочитать содержимое JWT. Не помещайте в него чувствительные данные или персональную информацию. В приглашении достаточно указать идентификаторы (например, ID группы), а подробные сведения хранить на сервере.

Deferred Deep Link

Если пользователь открывает ссылку на устройстве без приложения, он попадёт в магазин, а после установки сможет открыть страницу, связанную с Deep Link. Такой сценарий называется Deferred Deep Link. DyLy также поддерживает его.

Сначала пользователь нажимает на ссылку на мобильном устройстве, где приложение отсутствует. Ссылка выполняется в браузере и отправляет запрос на сервер DyLy. DyLy запоминает IP-адрес, операционную систему и другие данные устройства, после чего перенаправляет пользователя в магазин.

При первом запуске после установки приложение обращается к DyLy, чтобы узнать, переходило ли это устройство по ссылке ранее. DyLy сравнивает IP-адрес, ОС и другую информацию запроса; если доступ был, возвращает приложению соответствующий Deep Link.

Так приложение получает информацию о ссылке при первом запуске после установки.

Подробности ищите в официальной документации DyLy.

Итоги

С DyLy реализовать Deep Link очень просто. В следующем материале мы подробно рассмотрим создание пригласительных ссылок и других конкретных сценариев.

Справочные материалы

Поделиться:

Связанные статьи