Мобильная платформа. Реакция на внешнее событие в 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 124974 739 207
2196 руб.
18.01.2017 152705 235 237
5084 руб.
12.05.2020 34958 147 100
19000 руб.
24.06.2025 4124 26 0