![]() |
Мобильная Торговля
|
Версия
|
Манифест - это файл в формате JSON, определяющий тип, параметры и ресурсы расширения.
Манифест должен иметь имя manifest.json.
Пример манифеста:
{ "uri": "stmobile://report/routereports/performance", "type": "report", "title": "qsTr(Plans execution)", "license": ["Report_Performance"], "locales": { "ru_RU": "performance_ru.lng" }, "datascript": { "script_file": "performance.js" }, "template": { "template_file": "performance.html" }, "group": { "group_title": "qsTr(Other)" } }
Список доступных полей:
uri - String, URI расширения, в формате: stmobile://module/target/name
type - String, тип расширения, возможные значения: report, printform, viewer, action, form, formconfig, union
union - Опциональный параметр, Object, объект с конфигурацией расширения типа union
"union": { "list": [ // Список расширений для объединения { "uri": "stmobile://action/preorder/preopen/checkdoc", // URI расширения для объединения "condition": "none" // Опциональный параметр, условие запуска расширения, по умолчанию "none", // доступные значения: "none", "prev_success", "prev_failed" }, ... ] },
title - String, заголовок расширения, параметр опциональный для расширений типа action и formconfig
icon - Опциональный параметр, String, иконка, отображаемая в списке операций
apiversion - Опциональный параметр, String, используемая версия API, по умолчанию 2
enabled - Опциональный параметр, Boolean, включение/выключение расширения, по умолчанию true
visible - Опциональный параметр, Boolean, включение/выключение отображения расширения, по умолчанию true, влияет только на визуальные расширения
license - Опциональный параметр, String[], список ключей лицензии, для которых будет доступно расширение
features - Опциональный параметр, String[], список фиче-флагов необходимых для работы расширения. Расширение загрузится, если хотя бы один фиче-флаг из списка в манифесте будет включен
locales - Опциональный параметр, Object, список файлов с переводами, соответствующих языкам:
"locales": { "ru_RU": "mylocale_ru.lng", "en_US": "mylocale_en.lng" ... },
Подробнее о переводах расширений: Локализация
config - Опциональный параметр, Object, конфигурация отчета, доступ посредством api.context.metaConfig
datascript - Object, data-скрипт:
"datascript": { "script_file": "myscript.js", "cache_key": String, // Опциональный параметр, используемый ключ кэша, по умолчанию "module_target" из URI "async": Boolean // Опциональный параметр, по умолчанию false, используется только для расширений типа action. // Позволяет запустить скрипт асинхронно, параллельно с основным потоком },
template - Object, шаблон:
"template": { "content_type": String, // Опциональный параметр, по умолчанию "html", возможные значения: html, fixedtext, plaintext, richtext "template_file": "mytemplate.html", "content_width_mode": String, // Опциональный параметр, по умолчанию "full", возможные значения: full, compact, используется только для страниц "content_height_size": Number // Опциональный параметр, по умолчанию 400, используется только для диалогов },
print - Object, Опциональный параметр, печатная форма:
"print": { "enabled": Boolean, // Опциональный параметр, по умолчанию false "printforms": [ // Список печатных форм { "type": String, // Опциональный параметр, по умолчанию "standart", доступные значения: narrow, standart, wide "content_type": String, // Опциональный параметр, по умолчанию "fixedtext", доступные значения: fixedtext "template_file": "myprint_st.txt" }, ... ] }
group - Object, группа отчетов:
Данный блок не используется в печатных формах
"group": { "group_title": String, // Опциональный параметр, название группы "priority": Number // Опциональный параметр, приоритет в группе, по умолчанию 0 }
launch - Object, способ открытия:
"launch": { "openmode": String // Опциональный параметр, по умолчанию "page", доступные значения: page, dialog },
dev - Object, параметры для разработчика:
"dev": { "output_path": String // Опциональный параметр, например: "./output" }
ВНИМАНИЕ! Метаданные внешних расширений объединяются с информацией, содержащейся в манифестах внутренних расширений. Таким образом, не указанные во внешнем манифесте поля будут браться из внутреннего манифеста, при их наличии. Учитывайте это при разработке расширений, заменяющих встроенный функционал. Пример:
// Внутренний манифест: { "uri": "stmobile://report/routeandoutletreports/cash", "type": "report", ... "template": { "content_type": "qml" }, ... } // Внешний манифест: { "uri": "stmobile://report/routeandoutletreports/cash", "type": "report", "template": { "template_file": "cash.html" }, ... }
Приведет к тому, что внешний отчет не будет работать, т.к. во внутреннем манифесте указано свойство "content_type": "qml", а во внешнем метфайле это свойство явно не указано.