1. 后端处理服务器API
1.1  数据库结构
1.2  后端处理服务器HTTP 接口
1.3. 数据包
1.3.1  数据包的基本信息
1.3.2  所有数据包
2. 后端处理服务器应用集成API
2.1  设置应用集成
2.2  API 格式和签名机制
2.3  API 定义
3. 客户端扩展机制
3.1. 扩展定义
3.1.1  扩展类型
3.1.2  扩展包目录结构
3.1.3  扩展描述文件
3.2. 扩展模块
3.2.1  主入口模块
3.2.2. 扩展模块API
3.2.2.1  扩展 API 概览
3.2.2.2  扩展 API 权限
3.2.2.3  扩展 API 定义
3.2.3  扩展实例对象
3.2.4  数据存储机制
3.2.5  自定义上下文菜单
3.2.6  自定义命令
3.2.7  自定义网址解析
3.3. 开发扩展
3.3.1  载入开发中的扩展
3.3.2  开发应用扩展
3.3.3  开发插件扩展
3.3.4  开发主题扩展
3.4  内置扩展
3.5  分发扩展
4. 会话机器人开发指南
4.1  机器人应用开发

自定义命令

2020-08-11 10:59:21
孙浩
5658
最后编辑:孙浩 于 2020-08-11 11:11:20
分享链接

通过主入口模块的commands字段可以为应用添加自定义上下文菜单。commands字段为一个数组,包含多个命令描述对象。

命令描述对象

一个命令描述对象包含如下属性:

  • name:命令名称,只能包含大小写字母、数组和下划线,尽量确保名称具备唯一性;
  • func:类型为function(context, ...params),命令执行时调用的回调函数;
  • context:类型为Object,命令执行时初始化的上下文对象。

使用 URL 调用命令

命令可以通过用户点击界面上的链接进行触发,例如在界面上发送一个如下的链接地址:

!extension.myExtension.testCommand?msg=hello

则会执行扩展名称为myExtension中定义的testCommand命令,执行命令回调函数时会将{msg: 'hello'}作为参数传递给上下文对象中的options字段。

自定义命令的例子

module.exports = {
    // 在扩展内定义扩展命令
    commands: [
        {
            // 定义名称为 testCommand 的命令
            name: 'testCommand',
            func: (context) => {
                console.log('执行了 textCommand 命令,msg 参数为', context.options.msg);
            }
        },
        // 如果要定义多个扩展命令,则可以在数组中继续添加更多的扩展命令对象
    ]
}

该扩展例子需要在package.json中声明如下权限:

{
    "usePermissions": [
        "commander.registerCommand"
    ]
}

发表评论
评论通过审核后显示。
联系我们
公众号