Skip to main content

酷大师插件官方定义消息

酷大师针对与插件 UI html 间的通信定义了一些官方消息。这些官方消息主要用于将插件生成的3d模型,插入到酷大师方案中。酷大师官方插件中的"智能灯箱“,”智能模型“等插件,就做了这样的事情。
img

官方消息分为两类:

  1. 插件 UI html 向酷大师侧发送的消息
  2. 酷大师侧向插件 UI html 发送的消息

一、插件 UI html 向酷大师侧发送的消息类型

插件侧会向酷大师侧发送消息用于与酷大师间进行通信,插件侧可以选择是否监听酷大师侧向插件侧发送的消息,酷大师官方定义的用于插件侧向酷大师侧发送的消息如下:

消息
作用
携带信息
示例        
insert_model该消息由插件侧发送给酷大师侧,用于提醒酷大师在画布侧插入模型 注意: 插入模型时记得缓存一份数据,用于成功插入模型后,监听酷大师侧发生的 extmodel_inserted 消息时使用
  1. 消息本身字符串(cmd)
  2. 传入参数(params),包括:
    1. appKey: 插件id
    2. bbox:模型包围盒大小
    3. resource:选中模型唯一标识符
    4. type:目前只支持"custom",即此模型需要通过调用插件后端WebHook API来获取插件模型的3d数据
postMessage({
    cmd: "insert_model",
    params: {
        appKey: "插件id",
        box:  {
            min:{
                x: 0,
                y: 0,
                z: 0
            },
            max:{
                x: 100,
                y: 100,
                z: 100
            }
        }, //模型包围盒大小
        resource:  "选中模型唯一标识符(modelIndex)",
        type:"custom" //  模型类型
    }
})
update_model该消息由插件侧发送给酷大师侧,用于提醒酷大师更新在画布中的模型
  1. 消息本身字符串(cmd)
  2. 传入参数(params),包括:
    1. appKey: 插件id
    2. bbox:模型包围盒大小
    3. resource:选中模型唯一标识符
    4. type:目前只支持"custom",即此模型需要通过调用插件后端WebHook API来获取插件模型的3d数据
postMessage({
    cmd: "update_model",
    params: {
        appKey: "插件id",
        box:  {
            min:{
                x: 0,
                y: 0,
                z: 0
            },
            max:{
                x: 100,
                y: 100,
                z: 100
            }
        }, //模型包围盒大小
        resource:  "选中模型唯一标识符(modelIndex)",
        type:"custom" //  模型类型
    }
})
cancel_insert该消息由插件侧发送给酷大师侧,用于提醒酷大师取消插入模型
  1. 消息本身字符串(cmd)
  2. 传入参数(params),包括:
    1. appKey: 插件id
    2. resource:选中模型唯一标识符
    3. type:目前只支持"custom",即此模型需要通过调用插件后端WebHook API来获取插件模型的3d数据
postMessage({
    cmd: "cancel_insert",
    params: {
        appKey: "插件id",
        resource:  "选中模型唯一标识符(modelIndex)",
        type:"custom" //  模型类型
    }
})

二、酷大师侧向插件 UI html 发送的消息类型

酷大师侧会向插件侧发送消息用于与插件间进行通信,对于该种消息,插件侧仅需要监听即可,酷大师官方定义的用于酷大师侧向插件侧发送的消息如下:

消息
作用
携带信息
示例        
edit_model该消息由酷大师侧发送给插件侧,用于向插件侧发送关于模型的唯一标识符给插件侧,用于进行如下操作。
该消息分为两种情况:
1.用户点击已有模型,酷大师向插件侧发送该消息时携带所选中模型的标识符,用于提醒插件用户在酷大师侧已选中某个特定模型,便于插件对该模型进行操作;
2.用户未选中模型,或点击鼠标右键,酷大师向插件侧发送该消息的同时携带的模型标识符为空,用于提醒插件用户在酷大师侧未选中模型。
  1. 消息本身字符串(cmd)
  2. 传入参数(payload),包括:
    1. modelIndex:选中模型唯一标识符
1.用户点击已有模型 :
postMessage({
    cmd: "edit_model", //消息标识
    payload: {
        modelIndex: "选中模型唯一标识符",
    }
})
2.用户未选中模型,或点击鼠标右键时:
postMessage({
    cmd: "edit_model", //消息标识
    payload: {
        modelIndex: undefined,
    }
})
extmodel_inserted该消息由酷大师侧发送给插件侧,用于提醒插件侧模型已成功插入,可根据插件侧发送extmodel_inserted消息时缓存的数据进行余下步骤<
  1. 消息本身字符串(cmd)
  2. 传入参数(payload)
postMessage({
    cmd: "extmodel_inserted", //消息标识
    payload: {
        modelIndex: undefined,
    }
})

三、酷大师与插件通信关系图

img