Kaspersky IoT Secure Gateway 1000 SDK

Пользовательский интерфейс программ

23 января 2025

ID 271512

В Kaspersky IoT Secure Gateway 1000 SDK реализована возможность разработки программ с пользовательским интерфейсом, отображаемом в веб-плагине управления Kaspersky IoT Secure Gateway 1000 веб-консоли Kaspersky Security Center. Вы можете использовать существующий базовый пользовательский интерфейс, вызвав функцию generate_application_kpa() в командах сборки CMake со значением параметра UI_RESOURCE_NAME, установленным в default.

Базовый пользовательский интерфейс предоставляет следующие элементы управления:

  • поле для ввода конфигурации программы в виде произвольного текста;
  • кнопку для загрузки дополнительных файлов, доступных программе;
  • список загруженных файлов.

Вы можете посмотреть использование базового пользовательского интерфейса в примере default_ui_example_package.

Содержимое ресурсов базового пользовательского интерфейса

Файлы ресурсов базового пользовательского интерфейса имеют формат JSON и располагаются в директории /opt/KasperskyOS-SDK-KISG-Platform-<version>/share/ksc/ui/default. Директория содержит две поддиректории, перемещать, переименовывать или удалять которые не следует:

  • handler_declarations

    Содержит файл handler_declarations.json с описанием обработчиков действий.

  • schemes

    Содержит файл APP_CONFIGURATION.json с описанием схемы разметки, которая преобразуется в html-разметку при открытии программы в веб-плагине управления Kaspersky IoT Secure Gateway 1000 веб-консоли Kaspersky Security Center.

Доработка базового пользовательского интерфейса

Не рекомендуется использовать типы элементов интерфейса или обработчиков, не перечисленные в файлах базового пользовательского интерфейса APP_CONFIGURATION.json и handler_declarations.json, так как это может привести к неработоспособности пользовательского интерфейса программы.

Вы можете доработать базовый пользовательский интерфейс под нужды вашей программы. Для этого вам потребуется скопировать ресурсы базового пользовательского интерфейса в директорию с ресурсами вашей программы и вызвать функцию generate_application_kpa() в командах сборки CMake с параметром UI_RESOURCE_NAME, установленным в значение пути до ресурсов доработанного пользовательского интерфейса относительно пути, указанного в параметре RESOURCES.

Формат обмена данными между вашей программой и веб-плагином управления Kaspersky IoT Secure Gateway 1000 веб-консоли Kaspersky Security Center строго определен.

Чтобы связать вашу программу с ресурсами пользовательского интерфейса, вам потребуется внести в файлы ресурсов базового пользовательского интерфейса следующие изменения:

  • Заменить все вхождения @APP_ID_ORIGINAL@ в файле APP_CONFIGURATION.json на идентификатор вашей программы. Идентификатор программы вы можете получить из параметра "application": { "id": "..." } шаблона манифеста или из параметра APP_ID функции generate_application_kpa() команд сборки CMake.
  • Заменить все вхождения @APP_ID_CAMEL_CASE@ в файлах APP_CONFIGURATION.json и handler_declarations.json на идентификатор вашей программы в стиле camelCase, удалив из идентификатора программы точки.
  • Заменить все вхождения @APP_NAME@ на отображаемое название программы. Отображаемое название программы вы можете получить из параметра "application": { "name": "..." } шаблона манифеста или из параметра APP_NAME функции generate_application_kpa() команд сборки CMake.
  • Заменить все вхождения @APP_ID_LOWER_CASE@ в файле handler_declarations.json на идентификатор вашей программы в нижнем регистре, удалив из идентификатора программы точки.

Мы не рекомендуем вручную добавлять новые элементы интерфейса в файл APP_CONFIGURATION.json. Вместо этого, воспользуйтесь реализацией схемы разметки из базового пользовательского интерфейса или используйте файл APP_CONFIGURATION.json из примеров message_sender_example_package и message_receiver_example_package.

Элементы интерфейса, с которыми пользователь может взаимодействовать, размещены в поле "json": {...} файла APP_CONFIGURATION.json. Вы можете перемещать, удалять и изменять элементы интерфейса под нужды вашей программы. Если вы создаете новый элемент интерфейса, с которым нужно взаимодействовать, то вам потребуется связать его с действием, описанным в файле handler_declarations.json. Связывание осуществляется вызовом обработчика действия из файла handler_declarations.json по имени "handlerName": "..." при описании типа взаимодействия пользователя с элементом интерфейса. Например, при нажатии на кнопку, вызывается обработчик загрузки файла:

APP_CONFIGURATION.json (фрагмент)

...

{

"type": "button",

"label": "Upload files",

"click_handler": "plugins.kasperskyKisgExample.appConfiguration.uploadFiles",

...

}

...

handler_declarations.json (фрагмент)

...

{

"handlerName": "plugins.kasperskyKisgExample.appConfiguration.uploadFiles",

"joinMemberName": "kiotsg.pluginHelpers.uploadFilesCb",

...

}

...

Вы можете посмотреть пример доработки базового пользовательского интерфейса в ресурсах примера vpn_config_example_package.

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!