-
1. 后端处理服务器API
- 1.1 数据库结构
- 1.2 后端处理服务器HTTP 接口
- 1.3. 数据包
-
2. 后端处理服务器应用集成API
- 2.1 设置应用集成
- 2.2 API 格式和签名机制
- 2.3 API 定义
- 3. 客户端扩展机制
-
4. 会话机器人开发指南
- 4.1 机器人应用开发
扩展描述文件
- 2020-08-11 10:53:13
- 孙浩
- 12220
- 最后编辑:孙浩 于 2020-08-11 10:56:50
- 分享链接
扩展描述文件是一个扩展必须提供的文件,用来描述一个扩展的名称、类型及其他关键信息。喧喧的扩展描述文件文件名为 package.json,兼容 npm 包管理器中的 package.json 文件格式。
一个最简单的应用扩展仅需要在扩展包中包含描述文件即可实现。以下为扩展描述文件中支持的配置项目:
{
// 扩展的名称,扩展名称只能包含字母、数字、短横线及下划线,且第一个字符必须为字母
// 扩展的名称必须唯一,相同名称的扩展会提示覆盖或升级,为避免与其他扩展发生冲突,也可以使用 guid 做为扩展名称
"name": "simple-extension",
// 扩展在界面上显示的名称
"displayName": "简单扩展",
// 扩展的介绍文本
"description": "这是一个简单扩展的例子。",
// 扩展的版本
"version": "1.0.0",
// 扩展开发的作者
"author": "Catouse",
// 扩展的发布者
"publisher": "易软天创",
// 扩展许可协议类型
"license": "MIT",
// 扩展主页
"homepage": "http://xuan.im/extensions",
// 扩展配置对象
"xext": {
// 扩展类型,目前支持的类型包括:
// * app - 应用扩展
// * plugin - 插件扩展
// * theme - 主题扩展
"type": "app",
// 扩展图标,可以使用如下值
// * 使用 Material Design Icons (https://materialdesignicons.com/),使用 mdi- 前缀,例如 mdi-star
// * 使用 http:// 或 https:// 协议开头图片地址,例如 http://zui.sexy/img/icon.png
// * 使用相对扩展包目录的相对地址,例如 img/icon.png
// 需要注意:
// * 当扩展类型为 app 时,如果不指定则会使用应用图标(appIcon)
// * 如果使用图片作为扩展图标,确保作为图标的图片长宽比例为1:1(正方形图片),并且大小不小于 512x512
"icon": "mdi-star",
// 扩展主要颜色,可能被用到自动生成的图标上或作为部分界面背景
"accentColor": "#aa00ff",
// 针对扩展类型 app - 应用界面类型
// 可选值包括:
// * insideView:提供 React 组件作为界面视图
// * webView:完整的网页视图
// * browser: 使用用户默认浏览器打开
// * custom:当用户点击应用图标时执行自定义操作
"appType": "insideView",
// 当 appType 为 webView 时加载的页面地址,可以包含以下格式的地址:
// * 使用 http:// 或 https:// 协议开头的网站页面地址,例如 http://zui.sexy/m
// * 使用相对扩展包目录的相对地址,通常指向一个 html 文件,例如 lib/page/index.html
"webViewUrl": "http://zui.sexy/m",
// 当 appType 为 webView 时,指定一个脚本在 webview 页面中其他脚本执行之前先加载,此脚本必须为扩展包内的 JavaScript 文件。
"webViewPreloadScript": "lib/preload.js",
// 针对扩展类型 app - 应用图标,可以使用如下值
// * 使用 Material Design Icons (https://materialdesignicons.com/),使用 mdi- 前缀,例如 mdi-star
// * 使用 http:// 或 https:// 协议开头图片地址,例如 http://zui.sexy/img/icon.png
// * 使用相对扩展包目录的相对地址,例如 img/icon.png
// 需要注意:
// * 如果不指定则会使用扩展图标(icon)作为应用图标
// * 如果使用图片作为应用图标,确保作为图标的图片长宽比例为1:1(正方形),并且大小不小于 512x512
"appIcon": "mdi-star",
// 针对扩展类型 app - 应用配色,可能被用到图标上,如果不指定会使用扩展的 accentColor
"appAccentColor": "#aa00ff",
// 针对扩展类型 app - 界面背景色,可以设置为透明(transparent),默认为白色 #fff
"appBackColor": "#fff",
// 针对扩展类型 app - 是否允许用户将应用图标固定在窗口菜单上,可选值包括:
// * true,表示默认即将应用图标固定在菜单上;
// * false,不允许将应用图标固定在菜单上;
// * 'auto',默认不固定在菜单上,但允许用户自己设置;
// * 'fixed',将应用图标固定在菜单上且不允许用户更改此设置(此选项仅对远程扩展或者内置扩展有效,否则与 true 相同);
// * 'main-fixed',将应用图标固定在主导航菜单上且不允许用户更改此设置(此选项仅对远程扩展或者内置扩展有效,否则与 true 相同);
"pinnedOnMenu": "auto",
// 针对扩展类型 app - 当将应用图标固定在窗口菜单上时的顺序,数值越小越靠前
"pinnedOnMenuOrder": 100,
// 针对扩展类型 app - 应用在菜单上显示的图标,可以使用如下值
// * 使用 Material Design Icons (https://materialdesignicons.com/),使用 mdi- 前缀,例如 mdi-star
// * 使用 http:// 或 https:// 协议开头图片地址,例如 http://zui.sexy/img/icon.png
// * 使用相对扩展包目录的相对地址,例如 img/icon.png
// 需要注意:
// * 如果不指定则会使用应用图标(icon)作为应用图标
// * 如果使用图片作为应用图标,确保作为图标的图片长宽比例为1:1(正方形),并且大小不小于 256x256
"menuIcon": "mdi-star",
// 针对扩展类型 plugin 或 app - 模块主要入口脚本文件位置,可以包含以下格式的地址:
// * 使用相对扩展包目录的相对地址,例如 lib/index.js
// 当扩展类型为 plugin 时会自动从扩展包目录下寻找 index.js 文件作为模块主入口文件,如果符合此种情况则可以忽略此字段
"main": "lib/index.js",
// 是否允许热加载扩展,默认值为 false,如果设置为 true,则安装扩展后无需重启就能使用
"hot": false,
// 扩展分组,使用一个字符串指定扩展所属的分组
// 仅当运行时配置项 `ui.exts.categories` 启用时生效
// 当 `ui.exts.categories` 值为 `true` 时,此属性即为分组在界面上显示的名称
// 当 `ui.exts.categories` 为分组信息表(例如 `{office: {label: "办公", order: 1}, game: {label: "游戏", order: 2}}`)或分组信息清单(例如 `[{name: "office", label: "办公", order: 1}, {name: "game", label: "游戏", order: 2}]`)时,此属性应该为分组的内部名称,而不是显示名称,因为显示名称会在 `ui.exts.categories` 中指定
"category": "office",
// 针对扩展类型 theme - 主题列表
// 通过一个对象数组,声明多个主题配置
"themes": [
{
// 主题内部名称
"name": "dark",
// 主题的描述文本,可能会在界面上显示
"description": "这是一个暗黑主题",
// 主题显示名称
"displayName": "暗色",
// 主题 CSS 文件位置,可以是相对包的路径或者一个可访问的网址
"style": "lib/themes/dark.css",
// 主题的主要颜色
"color": "#ff00f1",
// 主题载入方式,可取值包括:
// * append 在默认样式的基础上附加样式
// * override 替代默认样式
"inject": "override",
// 主题的预览图片地址
"preview": "lib/themes/preview-dark.png"
},
// ... 其他主题配置对象
],
// 申明扩展需要访问的 API
"usePermissions": [
"@L2",
"members",
"contextmenu.showContextMenu",
"-members.getDeptsTree"
]
},
// 扩展要求的运行环境
"engines": {
// 扩展对喧喧版本的支持
"xuanxuan": "^${version}",
// 扩展所支持的平台
"platform": "electron,nwjs",
// 扩展所依赖的其他扩展
"extensions": [],
},
// 扩展关键字,可以用于搜索
"keywords": ["xuanxuan", "im", "extension", "sample"],
// Bugs 反馈页面
"bugs": {
"url": "https://github.com/easysoft/xuanxuan/issues"
},
// 代码库地址
"repository": {
"url": "https://github.com/easysoft/xuanxuan/",
"type": "git"
},
// ...兼容其他 npm package.json 属性
}
发表评论

联系我们
社群交流