В 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.