Внешняя компонента "Монитор активации мобильного приложения"

Компонента позволяет определить, находится ли мобильное приложение на переднем плане.

В мобильной платформе 8.3.12.64, как мне кажется, количество ошибок, связанных с технологией внешних компонент, сократилось. Соответственно, их разработка стала более приятным делом, и я предлагаю очередное пополнение их собрания для сообщества.

Хорошая практика в разработке мобильных приложений, имеющих доступ к защищенным ресурсам в сети — просить повторную авторизацию пользователя при выходе из фонового или спящего состояния. Достаточно посмотреть на любое банковское приложение. Но, к сожалению, мобильная платформа 1С не имеет встроенных механизмов для этого. Компонента позволит Вам преодолеть этот недостаток.

В виду ее простоты я предлагаю лишь архив компоненты без конфигурации. Как ее использовать ясно из примеров. Подключение стандартное:

Если ПодключитьВнешнююКомпоненту("ОбщийМакет.ИмяМакета", "State", ТипВнешнейКомпоненты.Native) Тогда
Компонента = Новый("AddIn.State.ApplicationState");
КонецЕсли;

Как видно, имя объекта: "ApplicationState". Компонента реализует минимальную функциональность устройства ввода, она не вызывает внешних событий. Фактически используется только метод "Подключить". Если приложение находится на переднем плане, он возвращает Истина, на заднем плане или свернуто — Ложь. В критически важные моменты, Вы можете периодически опрашивать состояние приложения и отключать его от ресурсов, например, в таймере:

&НаКлиенте
Процедура Включить(Команда)
ПодключитьОбработчикОжидания("СобытиеТаймера",5);
КонецПроцедуры

&НаКлиенте
Процедура СобытиеТаймера()
Если Компонента.Подключить() Тогда

Иначе

КонецЕсли;
КонецПроцедуры

 

3 Comments

  1. DENLSD

    Добавьте к статье информацию о поддерживаемых платформах 🙂

    Reply
  2. PROF1L

    Еще вопрос: файлы, которые мы будем скачивать за стартмани — это что? Это шаблон или просто скомпилированная компонента?

    Reply
  3. IgorKissil

    (2) Исходники закрыты

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *