Обработка глубоких ссылок
Глубокая ссылка — это ссылка на контент приложения, которая открывается в браузере, если приложение не установлено, и в приложении, если приложение установлено. У типов, наследуемых от типа КлиентскоеПриложение, существует специальное событие ПриПереходеПоСсылке. В обработчике данного события вы можете обработать глубокие ссылки необходимым вам образом.
Пример использования в описании YAML:
ВидЭлемента: КомпонентИнтерфейса
Ид: 76eb6f8f-e340-42ed-8dad-7a1104a6da02
Имя: ДемонстрационноеПриложение
ОбластьВидимости: ВПодсистеме
Наследует:
Тип: СтандартноеКлиентскоеПриложениеСРазделами
ПриПереходеПоСсылке: ПриПереходеПоСсылке
Чтобы использовать функциональность глубоких ссылок, в элементе проекта Мобильный Клиент, в свойстве Возможности, добавьте элемент ГлубокиеСсылки. Это позволит вам обрабатывать ссылки вида https://адрес-сервера/applications/адрес-приложения, например https://serverhost/applications/AppName.
- .well-known/assetlinks.json (для Android). Пример:
[ { "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.e1c.g5rt.mobile.client", "sha256_cert_fingerprints": ["16:3F:75:64:52:44:3B:AA:4F:0A:89:1B:C2:65:0E:07:12:89:A4:58:39:BA:82:E2:84:66:B0:74:42:1D:5E:33"] } } ]
Для связывания сайта и приложения данный файл необходимо положить в корень сайта https://domain.name/.well-known/assetlinks.json.Важно: В Android связывание сайта и приложения необязательно. Без связывания, при переходе по ссылке будет предложено выбрать приложение для ее открытия. - .well-known/apple-app-site-association (для iOS). Пример:
{ "applinks":{ "apps":[], "details":[ { "appID":"L2DZT76VE2.com.e1c.g5rt.mobile.client", "paths":["*"] } ] } }
Для связывания сайта и приложения данный файл необходимо положить в корень сайта https://domain.name/.well-known/apple-app-site-association.
Ниже будет рассмотрен сценарий использования глубоких ссылок.
Открытие мобильного приложения и активация промокода при переходе по ссылке
Пользователю приходит на почту ссылка http://my-pizza.ru?promo=promo123&userId=12345. Необходимо, чтобы при нажатии на ссылку, у пользователя открывалось приложение и активировался промокод.
В данном сценарии:- Пользователь переходит по ссылке http://my-pizza.ru?promo=promo123&userId=12345;
- Запускается мобильный клиент (при сборке мобильного клиента в элементе проекта Мобильный клиент, в свойстве Возможности, должна быть включена возможность ГлубокиеСсылки);
-
В объекте КлиентскоеПриложение вызывается обработчик ПриПереходеПоСсылке. Обработчик события ПриПереходеПоСсылке в данном случае может выглядеть следующим образом:
метод ПриПереходеПоСсылке(Источник: КлиентскоеПриложение, Событие: СобытиеПриПереходеПоСсылке) пер Ссылка = Событие.Ссылка пер Параметры = Ссылка.Параметры если Параметры != Неопределено и Параметры.Содержит("promo") Событие.СтандартнаяОбработка = Ложь ПрименитьПромокод(Параметры.ПолучитьПервый("promo")) ; ;
- В параметр Событие типа СобытиеПриПереходеПоСсылке передается Ссылка;
- У пользователя открывается приложение и активируется нужный промокод.