Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.
Реализовано в версии мобильной платформы 8.3.18.47
На текущий момент единственный способ запустить мобильное приложение, созданное на мобильной платформе 1С (или мобильный клиент 1С), не нажимая непосредственно на иконку приложения – через PUSH или локальное уведомление.
В версии мобильной платформы 8.3.18 появится возможность запускать мобильное приложение "1С:Предприятия" (приложение, созданное на мобильной платформе 1С, или мобильный клиент 1С) из другого мобильного приложения или с использованием некоторого URL.
Эта возможность может потребоваться для решения различных задач интеграции мобильных приложений (как внешних приложений и сервисов с мобильными приложениями 1С, так и мобильных приложений 1С между собой).
В частности, появятся новые возможности:
Вызов конкретной функции мобильного приложения из другого приложения.
Возможность использовать некоторый URL для того, чтобы открыть мобильное приложение на конкретном объекте или функции.
Примеры сценариев использования новой функциональности:
Пользователю пришло письмо по электронной почте (SMS, сообщение в мессенджере) c акцией по промокоду. Пользователь нажимает на ссылку «Воспользоваться», открывается мобильное приложение 1С, поле с промокодом автоматически заполняется.
Пользователю присылается в Документообороте (например, в письме, или через Систему взаимодействия) ссылка на документ в Клиенте ЭДО. При нажатии на ссылку запускается мобильное приложение "Клиент ЭДО" и открывается требуемый объект.
Для реализации возможности вызова мобильного приложения из другого приложения, используются глубинные ссылки (deep linking) и механизм глубинного связывания. Глубинная ссылка - это URL, который указывает на какой-то ресурс на сайте или в приложении. А глубинное связывание - это механизм, который позволит мобильной операционной системе связать URL и мобильное приложение, установленное на устройстве.
Глубинная ссылка может быть сформирована двумя способами:
С использованием собственной схемы (например, myfuncapp://). В этом случае URL для вызова будет иметь вид myfuncapp://comand?params.
С использованием схемы HTTP(S). Этот способ предполагает, что URL глубинной ссылки принадлежит схемам http:// или https://. Работа глубинного связывания в этом случае возможна только с использованием реального веб-сайта, доступ к которому должен быть у разработчика мобильного приложения (или, более глобально, всей схемы интеграции приложения и сайта). Этот доступ необходим для того, чтобы разместить в определенном каталоге сайта (из глубинной ссылки) определенные файлы.
В модуле приложения добавлена возможность реализации нового обработчика:
ОбработкаПереходаПоНавигационнойСсылке(ДанныеПереходаПоНавигационнойСсылке, СтандартнаяОбработка) |
После установки на мобильное устройство приложение регистрирует в мобильной операционной системе глубинные ссылки, которое оно (приложение) может обрабатывать.
Когда пользователь выполняет переход по глубинной ссылке, мобильная операционная система определяет, какое приложение обрабатывает эту ссылку.
Найденное приложение запускается, и используемая глубинная ссылка передается в это приложение для разбора самим приложением.
В мобильном приложении срабатывает обработчик события ОбработкаПереходаПоНавигационнойСсылке, который и получает на вход глубинную ссылку, которая привела к запуску мобильного приложения.
Запуск = Новый ЗапускПриложенияМобильногоУстройства("android.intent.action.VIEW", Запуск.ДополнительныеДанные.Добавить("key2", СтроковыйПараметр); Если Запуск.ПоддерживаетсяЗапуск() Тогда Запуск.Запустить(Ложь); КонецЕсли; |
Процедура ОбработкаПереходаПоНавигационнойСсылке(ДанныеПереходаПоНавигационнойСсылке, БазоваяСсылка = ДанныеПереходаПоНавигационнойСсылке.БазоваяНавигационнаяСсылка; Путь = ДанныеПереходаПоНавигационнойСсылке.ОтносительнаяНавигационнаяСсылка; ДопДанные = ДанныеПереходаПоНавигационнойСсылке.ДополнительныеДанныеПереходаВМобильноеПриложение; Параметр1 = ДанныеПереходаПоНавигационнойСсылке.ПараметрыНавигационнойСсылки.Получить("key1"); Параметр2 = ДопДанные.Получить("key2"); Сообщение = "Произошел запуск по ссылке:" + Символы.ПС + "Базовая ссылка: " + БазоваяСсылка + Символы.ПС + "Относительный путь: " + Путь + Символы.ПС + "Параметр 1: " + Параметр1 + Символы.ПС + "Параметр 2: " + Параметр2; Сообщить(Сообщение); СтандартнаяОбработка = Ложь; КонецПроцедуры |