Skip to main content

酷大师插件格式要求

酷大师插件配置文件manifest.json格式如下:

{
"name": "testPlugin", // 表示插件名称
"id": "F4A41464-36D1-D915-77DF-DC3EBEEEFCA0", // 插件唯一识别码,通过酷大师插件平台创建插件时自动生成,不可更改。
"version": "1.0.0", // 表示插件版本,由用户设置
"view": "", // 表示插件ui文件,其值可为html文件路径或者url(需http/https开头)
"main": "", // 表示插件沙盒js代码文件,必须为文件路径
"position": "footerLeft", // 自定义插件入口位置
"multiViews": [ // 表达插件多 ui 情况下,每个 ui view的描述;此字段和“view”互斥,不能同时有值
{
"id": "example_view_1_id", // 第一个view 的 id
"pos": "AssetPanel", // 第一个view 的位置,只可取"AssetPanel"或"PropertyPanel"。目前,多个不同的view不能指定同一个pos 位置
"size": "default", // 预留可选字段. 第一个view 的尺寸,可取"default", "200*500"等值. 当"pos"为 "AssetPanel", "PropertyPanel"时,此值只能为 default
"content": "https://example_plugin.com/example_view_1.html", // 第一个 view 的内容,其值可为html文件路径或者url(需http/https开头)
},

{
"id": "example_view_2_id",
"pos": "PropertyPanel",
"content": "https://example_plugin.com/example_view_2.html"
},

"..." // 第n个view
],
"translations": "./translations.json" // 开发者提供的特定内容的多语言资源,参见7
}
  1. “name”、“id”、“version” 是必填字段。
  2. 如果用户的插件包含沙盒js代码:
    • 需设置“main”字段为沙盒代码对应的 js 文件路径(不可为 url)。用户所有在沙盒中运行的 js 代码必须在该文件中(可通过webpack等工具打包),不支持js模块导入。
    • 如果此时用户插件有 UI 界面,则可设置 “view” 或 “multiView” 字段为对应的 UI html 文件路径或 url,否则设置为空即可。
  3. 如果用户的插件包含沙盒js代码,需设置 “main” 字段为空,且设置 “view”, “multiViews” 字段为插件 UI html 的 url (不可为文件路径)。当载入插件时,酷大师会自动展示插件 UI。
  4. “main”字段和“view”,“multiViews" 字段不可同时为空;“view” 和 “multiViews" 不可同时非空。
  5. 当插件只需要一个 UI 界面窗口时,推荐使用 "view" 字段指定。“position” 指定了 UI 窗口在酷大师中出现的位置,是可选字段。它目前仅支持 default、footerLeft 两种取值:
    • 若不指定 “position” 字段或字段取值为 default,则插件入口出现在酷大师顶部栏的插件列表中(见图1)
    • 若取值为 footerLeft,插件入口出现在酷大师底部栏左侧。注意:此时需要提供插件入口对应的图标,即为酷家乐应用中心“发布管理”部分上传的插件图标(见图2)

img

图1

img

图2

  1. 当插件需要多个 UI 界面窗口时,推荐使用 "multiViews" 字段指定这多个 UI 的 html。每个 UI 窗口的位置,由 "multiViews" 里的 “pos” 字段指定,目前可取 AssetPanel、PropertyPanel 两种值,且多个不同的 UI 窗口不可取同一个 “pos” 值。因此,目前一个插件最多同时支持有两个 UI 界面窗口。
  2. translations.json表示特定内容的多语言资源,特定内容目前只有插件标题:以"pluginName"为key,目前仅支持下列语言的多语言翻译: "default"(默认值),"zh_CN"(中文),"en_US"(英文),"zh_TW"(繁体中文),"en_CN"(英文),"es_ES"(西班牙语),"ar_EG"(阿拉伯语),"fr_FR"(法语),"de_DE"(德语),"ru_RU"(俄语),"ja_JP"(日语),"ko_KR"(韩语)"it_IT"(意大利语),"th_TH"(泰语),"pt_PT"(葡萄牙语4文),"id_ID"(印度尼西亚语),"ro_RO"(罗马尼亚语),"pl_PL"(波兰语)。

如:

{
"pluginName": {
"default": "Path Array Plugin",
"zh_CN": "路径阵列插件",
"en_US": "Path Array Plugin",
"zh_TW": "Path Array Plugin",
"en_CN": "Path Array Plugin",
"es_ES": "Path Array Plugin",
"ar_EG": "Path Array Plugin",
"fr_FR": "Path Array Plugin",
"de_DE": "Path Array Plugin",
"ru_RU": "Path Array Plugin",
"ja_JP": "Path Array Plugin",
"ko_KR": "Path Array Plugin",
"it_IT": "Path Array Plugin",
"th_TH": "Path Array Plugin",
"pt_PT": "Path Array Plugin",
"id_ID": "Path Array Plugin",
"ro_RO": "Path Array Plugin",
"pl_PL": "Path Array Plugin"
}
}

开发提示

  1. 本地调试开发时生成的“ui.html”可能过大,尤其在引入一些组件库时,可以考虑将"ui.html"单独作为一个前端服务,具体示例可以参考路径阵列插件

dev/manifest.json:

{
"name": "path-array-plugin-title",
"id": "QyJDUjPlZWSNIBm",
"version": "1.0.0",
"view": "http://localhost:8082/ui.html",
"main": "./src/main.js"
}

webpack中配置:

    devServer: {
hot: true,
port: "8082",
open: true,
contentBase: 'dist/dev/src',
proxy: {
// 接口请求代理
}
}
  1. 当开发者使用 webpack 进行打包并且使用 “multiViews” 时,若 content 为 html 文件路径格式,则需要同时设置 webpack.config.js 中的 entry 和 plugins 配置,如:
{
"entry": {
"main": "./src/main/main.ts", // 插件代码入口起点
"assetUi": "./src/view/assetUi.ts", // UI代码入口起点
"propertyUi": "./src/view/propertyUi.ts", // UI代码入口起点
},
"plugins": [ // 打包生成每个view对应的html文件
new HtmlWebpackPlugin({
template: './src/view/assetUi.html',
filename: 'assetUi.html',
inlineSource: '.(js)$',
chunks: ['assetUi'],
inject: true,
}),
new HtmlWebpackPlugin({
template: './src/view/propertyUi.html',
filename: 'propertyUi.html',
inlineSource: '.(js)$',
chunks: ['propertyUi'],
inject: true,
}),
],
}