Обработка глубоких ссылок

Глубокая ссылка — это ссылка на контент приложения, которая открывается в браузере, если приложение не установлено, и в приложении, если приложение установлено. У типов, наследуемых от типа КлиентскоеПриложение, существует специальное событие ПриПереходеПоСсылке. В обработчике данного события вы можете обработать глубокие ссылки необходимым вам образом.

Пример использования в описании 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. Необходимо, чтобы при нажатии на ссылку, у пользователя открывалось приложение и активировался промокод.

В данном сценарии:
  1. Пользователь переходит по ссылке http://my-pizza.ru?promo=promo123&userId=12345;
  2. Запускается мобильный клиент (при сборке мобильного клиента в элементе проекта Мобильный клиент, в свойстве Возможности, должна быть включена возможность ГлубокиеСсылки);
  3. В объекте КлиентскоеПриложение вызывается обработчик ПриПереходеПоСсылке. Обработчик события ПриПереходеПоСсылке в данном случае может выглядеть следующим образом:
    метод ПриПереходеПоСсылке(Источник: КлиентскоеПриложение, Событие: СобытиеПриПереходеПоСсылке)
        пер Ссылка = Событие.Ссылка
        пер Параметры = Ссылка.Параметры
    
        если Параметры != Неопределено и Параметры.Содержит("promo")
            Событие.СтандартнаяОбработка = Ложь
            ПрименитьПромокод(Параметры.ПолучитьПервый("promo"))
        ;
    ;
  4. В параметр Событие типа СобытиеПриПереходеПоСсылке передается Ссылка;
  5. У пользователя открывается приложение и активируется нужный промокод.