Связь по Deeplink со сторонними приложениями

- На главном экране будет добавлен пункт меню со ссылкой на deeplink стороннего сервиса. Пунктов может быть несколько для переходов в разные разделы приложения
- Если стороннее приложение не установлено на телефоне, то нажатие на пункт меню поведет в маркетплейс для скачивания. Необходимы ссылки на iOS/Android стороннего приложения
- Если приложение установлено на телефоне, то оно запустится по deeplink.  Общая схема deeplink такая:


Где:
scheme - это идентификатор приложения (может быть любым), например smarthome
fragment - любой экран который нужно открыть и поймет их приложение. Например main - откроет главную, devices - откроет список устройств и т.д.
В стороннем приложении необходимо реализовать поддержку схемы открытия по deeplink

Если нужно обратный deeplink в наше приложение, то сначала мы его соберём, зададим свой идентификатор и выдадим список экранов которые можно открыть по нему.

Пример видео https://disk.360.yandex.ru/i/EBumzJ_EGZx4gA


Далее описана структура работы в нашем приложении и список доступных deeplink:

Структура:

scheme://screen/id/?key=value
  • scheme - последняя часть от bundleId (Пример com.wellsoft.legion, scheme = legion)
  • screen - экран который нужно открыть (берем из идентификаторов меню)
  • id - не обязательный параметр. Указывается если нужно открыть что-то по id. К примеру новость или квитанцию
  • key - Query параметр, не обязателен
  • value - значение query параметра key. Если указан key, то value обязателен.

Пример:

  • legion://frisbi/ - откроет приложение голос.комфорт и экран списка frisbi платежей
  • dnsexpert://news/78/ - откроет приложение ДНС эксперт и конкретную новость с id 78
  • comfortcity://news/35/?moduleType=1 - откроет приложение комфорт сити, конкретную новость с id 35 и передаст параметр moduleType 1, для получения новости с id 35 из модуля застройщика

Для параметра screen используем уже существующие идентификаторы от пунктов меню


Пример ApplicationId - com.wellsoft.smartzkh

Название экрана MenuIdentefier Deeplink
Счетчики counters smartzkh://counters
Список категорий услуг services smartzkh://services
Список услуг в категории services/id smartzkh://services/22
Экран услуги service/id smartzkh://service/95
Список новостей news smartzkh://news
Экран новости news/id smartzkh://news/1071
Список голосований votes smartzkh://votes
Экран голосования votes /id smartzkh://votes/55
Список статей articles smartzkh://articles
Экран статьи articles/id smartzkh://articles/29
Список вопросов questions smartzkh://questions
Экран вопроса questions/id smartzkh://questions/1
Список категорий камер videoCamera smartzkh://videocamera
Экран об УК contacts smartzkh://contacts
Профиль profile smartzkh://profile
Тарифы начислений tariffs smartzkh://tariffs
Список маркеров QR marks smartzkh://marks
Экран маркера QR marks/id smartzkh://marks/0
Список автоплатежей autopay smartzkh://autopay
Список аккаунтов для доступа accounts smartzkh://accounts
Список платежей Фрисби frisbi smartzkh://frisbi
Список страховок insurances smartzkh://insurances
Список пропусков pass smartzkh://pass
Видеоаналитика пропуска авто icv smartzkh://icv
Список устройств умного дома smarthouse smartzkh://smarthouse
Список автомобилей auto smartzkh://auto
Список заявок requests smartzkh://requests
Экран заявки request/id smartzkh://requests/5613
Список уведомлений notices smartzkh://notices
Экран уведомления notices/id smartzkh://notices/14709
Точки доступа barrier accesspoint/?type= smartzkh://accesspoint/?type=barrier
Точки доступа gate accesspoint/?type= smartzkh://accesspoint/?type=gate
Точки доступа NetPing accesspoint/?type= smartzkh://accesspoint/?type=netping
Точки доступа panel accesspoint/?type= smartzkh://accesspoint/?type=panel
Точки доступа сигур accesspoint/?type= smartzkh://accesspoint/?type=sigur
Создание заявки createrequest/?key= smartzkh://createrequest/?worktypeId=10&subworktypeId=15&description=Получение+выписки
Экран квитанции, таб 1 accruals/?tab= smartzkh://accruals/?type=current
Экран квитанции, таб 2 accruals/?tab= smartzkh://accruals/?type=accruals
Экран квитанции, таб 3 accruals/?tab= smartzkh://accruals/?type=payments