Мобильная платформа. Реакция на внешнее событие в Android при помощи внешней компоненты
Разработка - Разработка внешних компонент
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Мобильные приложения ( при их разработке в Андроид Студио на Java ) зачастую используют функционал обмена широковещательными сообщениями. Обмениваться сообщениями могут объекты классов и в рамках одного приложения, и за пределами текущей активности.

Сообщение представлено объектом "intent". Intent Отправляется в "эфир" посредством "sendBroadcast".
Приёмником для сообщения станут объекты классов тех приложений, у которых активен приёмник широковещательных сообщений, настроенный на приём сообщений от конкретного "источника".

Делаем мобильной платформе такой приёмник.

Package.zip необходимо загрузить в макет внешней компоненты. Приём сообщений на мобильной платформе реализуется в форме ( у меня обработка )

Необходимо задействовать метод формы связанный с внешним событием

Код модуля формы:
&AtClient
Var ExtLib;
&AtClient
Procedure OnOpen ( Cancel )
AttachAddIn ( "CommonTemplate.Broadcasts", "Sample", AddInType.Native );
ExtLib = New ( "AddIn.Sample.Simons" );
//Кирилица
//ExtLib.ИсточникИменаДействийФильтраНамерений = "OrdersPlusDelivery|ЧерезЧертуУказываемИменаИсточниковОтправителейСообщенийКоторыеХотимСлушать|ИхМожетБытьМного";
//ExtLib.СобытиеИменаНамерений = "msgHead|ЧерезЧертуУказываемИменаИнтентовВнутриСообщенияКоторыеБудутИнтерпретированыКакПараметрНомерДваПроцедурыОбработкиВнешнегоСобытия";
//ExtLib.ДанныеИменаНамерений = "msgBody|АналогичноДляПараметраНомерТри";
//ExtLib.Приём(); //Пуск приёмника широковещательных сообщений
//ExtLib.Отбой(); //Стоп
//Латиница
ExtLib.SourceIntentFilterActionsNames = "OrdersPlusDelivery";
ExtLib.EventIntentsNames = "msgHead";
ExtLib.DataIntentsNames = "msgBody";
Lib.RegisterReceiver();
//ExtLib.UnregisterReceiver();
EndProcedure
&AtClient
Procedure ExternalEvent ( Source, Event, Data )
If Source = "OrdersPlusDelivery" Then
If Event = "CheckInn" Then
//Например
ExtLib.UnregisterReceiver();
Else
//
//Ваши действия
//
EndIf;
Else
//
//Ваши действия
//
EndIf;
EndProcedure
Работа компоненты проверена на платформе 8.3.15.59.
Вступайте в нашу телеграмм-группу Инфостарт
См. также
3050 руб.
22.04.2019 125038 739 207
18300 руб.
30.05.2017 57925 12 71
2196 руб.
18.01.2017 152741 235 237
5084 руб.
12.05.2020 34970 147 100
19000 руб.
24.06.2025 4141 26 0