接收的事件
插件可以从 Stream Dock 应用程序接收的事件。
一旦 Stream Dock 应用程序加载了一个插件,并且用户设置了一些键来使用该插件,该插件将收到一些事件。同样,当显示属性检查器时,它将接收一些事件。
插件和属性检查器都可以接收以下事件:
| Event | 描述 | 
|---|---|
| didReceiveSettings | settings 改变后收到的事件 | 
| didReceiveGlobalSettings | globalSettings 改变后收到的事件 | 
插件还可能会收到以下附加事件:
| Event | 描述 | 
|---|---|
| keyDown | 当用户按下一个键时,插件将接收到该事件 | 
| keyUp | 当用户释放一个键时,插件将接收该事件 | 
| dialDown | 当用户按下旋钮时,插件将接收事件 | 
| dialUp | 当用户释放按下的旋钮时,插件将接收事件 | 
| dialRotate | 当用户旋转旋钮时,插件将接收到事件 | 
| willAppear | 当 Stream Dock 上显示某个操作实例时(例如,首次插入硬件时或进入包含该操作的文件夹时),插件将收到该事件 | 
| willDisappear | 当某个操作实例不再显示在 Stream Dock 上时,例如切换配置文件或文件夹时,插件将收到该事件 | 
| titleParametersDidChange | 当用户更改标题或标题参数时,插件将收到该事件 | 
| deviceDidConnect | 当设备插入计算机时,插件将接收该事件 | 
| deviceDidDisconnect | 当设备从计算机上拔下时,插件将接收该事件 | 
| applicationDidLaunch | 当启动受监控的应用程序时,插件将接收该事件 | 
| applicationDidTerminate | 当受监控的应用程序终止时,插件将接收该事件 | 
| systemDidWakeUp | 当电脑醒来时,插件将接收该事件 | 
| propertyInspectorDidAppear | 当属性检查器出现在 Stream Dock 用户界面中时收到的事件,例如,在选择新实例时 | 
| propertyInspectorDidDisappear | 从 Stream Dock 用户界面中销毁 Property Inspector 时收到的事件,例如,在选择新实例时旧实例就会触发改事件 | 
| sendToPlugin | 当属性检查器使用该事件时,插件接收的事件 | 
属性检查器还可能收到以下事件:
| Event | 描述 | 
|---|---|
| sendToPropertyInspector | 当插件使用该事件时,属性检查器接收的事件 | 
didReceiveSettings
settings 改变后收到的事件
{
  "action": "com.mirabox.demo.action1", 
  "event": "didReceiveSettings", 
  "context": uniqueValue, 
  "device": uniqueValue, 
  "payload": {
   "settings": {<json data>},
    "coordinates": {
      "column": 3, 
      "row": 1
    }, 
    "isInMultiAction": false
  }
}
| 成员 | 描述 | 
|---|---|
| action | 操作的唯一标识符 | 
| event | didReceiveSettings | 
| context | 标识实例操作的值 | 
| device | 用于标识设备的值 | 
| payload | 一个json对象 | 
payload 对象包含以下成员:
| Payload | 描述 | 
|---|---|
| settings | 此 JSON 对象包含持久存储的数据 | 
| coordinates | 触发的操作的坐标 | 
| state | 仅当操作在其manifest.json中定义了多个状态时才设置。从 0 开始的值包含操作的当前状态 | 
| isInMultiAction | 布尔值,指示操作是否位于 Multi-Action 内部 | 
didReceiveGlobalSettings
globalSettings 改变后收到的事件
{
  "event": "didReceiveGlobalSettings", 
  "payload": {
   "settings": {<json data>}
  }
}
| 成员 | 描述 | 
|---|---|
| event | didReceiveGlobalSettings | 
| payload | 一个json对象 | 
payload 对象包含以下成员:
| Payload | 描述 | 
|---|---|
| settings | 此 JSON 对象包含持久存储的数据 | 
dialDown
当用户按下旋钮时,插件将接收事件
{
  "action": "com.mirabox.demo.action2",
  "event": "dialDown",
  "context": uniqueValue,
  "device": uniqueValue,
  "payload": {
    "controller": "Encoder",
    "settings": {<json data>},
    "coordinates": {
      "column": 0,
      "row": 0
    },
  }
}
| 成员 | 描述 | 
|---|---|
| action | 操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作 | 
| event | dialDown | 
| context | 标识实例操作的值 | 
| device | 用于标识设备的值 | 
| payload | 一个json对象 | 
payload 对象包含以下成员:
| Payload | 描述 | 
|---|---|
| settings | 此 JSON 对象包含持久存储的数据 | 
| coordinates | 触发的操作的坐标 | 
| controller | Encoder | 
dialUp
当用户释放按下旋钮时,插件将接收事件
{
  "action": "com.mirabox.demo.action2",
  "event": "dialUp",
  "context": uniqueValue,
  "device": uniqueValue,
  "payload": {
    "controller": "Encoder",
    "settings": {<json data>},
    "coordinates": {
      "column": 0,
      "row": 0
    },
  }
}
| 成员 | 描述 | 
|---|---|
| action | 操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作 | 
| event | dialUp | 
| context | 标识实例操作的值 | 
| device | 用于标识设备的值 | 
| payload | 一个json对象 | 
payload 对象包含以下成员:
| Payload | 描述 | 
|---|---|
| settings | 此 JSON 对象包含持久存储的数据 | 
| coordinates | 触发的操作的坐标 | 
| controller | Encoder | 
dialRotate
当用户旋转旋钮时,插件将接收事件
{
  "action": "com.mirabox.demo.action2",
  "event": "dialRotate",
  "context": uniqueValue,
  "device": uniqueValue,
  "payload": {
    "controller": "Encoder",
    "settings": {<json data>},
    "coordinates": {
      "column": 0,
      "row": 0
    },
    "ticks": -1,
    "pressed": false
  }
}
| 成员 | 描述 | 
|---|---|
| action | 操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作 | 
| event | dialRotate | 
| context | 标识实例操作的值 | 
| device | 用于标识设备的值 | 
| payload | 一个json对象 | 
payload 对象包含以下成员:
| Payload | 描述 | 
|---|---|
| settings | 此 JSON 对象包含持久存储的数据 | 
| coordinates | 触发的操作的坐标 | 
| controller | Encoder | 
| ticks | 一个整数,用于保存旋钮旋转时的“刻度”数。正值表示顺时针旋转,负值表示逆时针旋转 | 
| pressed | 按下旋钮时处于旋转状态的布尔值 | 
keyDown
当用户释放按下旋钮时,插件将接收事件
{
  "action": "com.mirabox.demo.action2",
  "event": "keyDown",
  "context": uniqueValue,
  "device": uniqueValue,
  "payload": {
    "settings": {<json data>},
    "coordinates": {
      "column": 0,
      "row": 0
    },
    "state": 0,
    "isInMultiAction": false
  }
}
| 成员 | 描述 | 
|---|---|
| action | 操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作 | 
| event | keyDown | 
| context | 标识实例操作的值 | 
| device | 用于标识设备的值 | 
| payload | 一个json对象 | 
payload 对象包含以下成员:
| Payload | 描述 | 
|---|---|
| settings | 此 JSON 对象包含持久存储的数据 | 
| coordinates | 触发的操作的坐标 | 
| state | 仅当操作在其manifest.json中定义了多个状态时才设置。从 0 开始的值包含操作的当前状态 | 
| isInMultiAction | 布尔值,指示操作是否位于 Multi-Action 内部 | 
keyUp
当用户释放按下旋钮时,插件将接收事件
{
  "action": "com.mirabox.demo.action2",
  "event": "keyUp",
  "context": uniqueValue,
  "device": uniqueValue,
  "payload": {
    "settings": {<json data>},
    "coordinates": {
      "column": 0,
      "row": 0
    },
    "state": 0,
    "isInMultiAction": false
  }
}
| 成员 | 描述 | 
|---|---|
| action | 操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作 | 
| event | keyUp | 
| context | 标识实例操作的值 | 
| device | 用于标识设备的值 | 
| payload | 一个json对象 | 
payload 对象包含以下成员:
| Payload | 描述 | 
|---|---|
| settings | 此 JSON 对象包含持久存储的数据 | 
| coordinates | 触发的操作的坐标 | 
| state | 仅当操作在其manifest.json中定义了多个状态时才设置。从 0 开始的值包含操作的当前状态 | 
| isInMultiAction | 布尔值,指示操作是否位于 Multi-Action 内部 | 
willAppear
当操作的实例显示在 Stream Dock 上时,例如,当首次插入硬件或输入包含该操作的文件夹时,插件将收到一个事件。在以下情况下,您将看到此类事件:
Stream Dock 应用程序启动
用户在配置文件之间切换
用户设置一个键来使用您的操作
{
    "action": "com.mirabox.demo.action1",
    "event": "willAppear",
    "context": uniqueValue,
    "device": uniqueValue,
    "payload": {
        "settings": {<json data>},
        "coordinates": {
            "column": 3, 
            "row": 1
        },
        "controller": "Keypad",
        "state": 0,
        "isInMultiAction": false
    }
}
| 成员 | 描述 | 
|---|---|
| action | 操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作 | 
| event | willAppear | 
| context | 标识实例操作的值 | 
| device | 用于标识设备的值 | 
| payload | 一个json对象 | 
payload 对象包含以下成员:
| Payload | 描述 | 
|---|---|
| settings | 此 JSON 对象包含持久存储的数据 | 
| coordinates | 触发的操作的坐标 | 
| controller | Keypad正常的按键,Information只能看,没有触摸、按键事件,SecondaryScreen小屏幕显示,Knob旋钮 | 
| state | 仅当操作在其manifest.json中定义了多个状态时才设置。从 0 开始的值包含操作的当前状态 | 
| isInMultiAction | 布尔值,指示操作是否位于 Multi-Action 内部 | 
willDisappear
当操作的实例停止在 Stream Dock 上显示时,例如,在切换配置文件或文件夹时,插件将收到一个事件。在以下情况下,您将看到此类事件:willDisappear
用户在配置文件之间切换
用户删除了操作
{
    "action": "com.mirabox.demo.action1",
    "event": "willDisappear",
    "context": uniqueValue,
    "device": uniqueValue,
    "payload": {
        "settings": {<json data>},
        "coordinates": {
            "column": 3, 
            "row": 1
        },
        "controller": "Keypad",
        "state": 0,
        "isInMultiAction": false
    }
}
| 成员 | 描述 | 
|---|---|
| action | 操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作 | 
| event | willDisappear | 
| context | 标识实例操作的值 | 
| device | 用于标识设备的值 | 
| payload | 一个json对象 | 
payload 对象包含以下成员:
| Payload | 描述 | 
|---|---|
| settings | 此 JSON 对象包含持久存储的数据 | 
| coordinates | 触发的操作的坐标 | 
| controller | Keypad正常的按键,Information只能看,没有触摸、按键事件,SecondaryScreen小屏幕显示,Knob旋钮 | 
| state | 仅当操作在其manifest.json中定义了多个状态时才设置。从 0 开始的值包含操作的当前状态 | 
| isInMultiAction | 布尔值,指示操作是否位于 Multi-Action 内部 | 
titleParametersDidChange
当用户更改动作实例的标题或标题参数时,插件将收到该事件
{
  "action": "com.mirabox.demo.action1", 
  "event": "titleParametersDidChange", 
  "context": "uniqueValue", 
  "device": "uniqueValue", 
  "payload": {
    "coordinates": {
      "column": 3, 
      "row": 1
    }, 
    "settings": {<json data>}, 
    "state": 0, 
    "title": "", 
    "titleParameters": {
      "fontFamily": "", 
      "fontSize": 12, 
      "fontStyle": "", 
      "fontUnderline": false, 
      "showTitle": true, 
      "titleAlignment": "bottom", 
      "titleColor": "#ffffff"
    }
  }
}
| 成员 | 描述 | 
|---|---|
| action | 操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作 | 
| event | titleParametersDidChange | 
| context | 标识实例操作的值 | 
| device | 用于标识设备的值 | 
| payload | 一个json对象 | 
payload 对象包含以下成员:
| Payload | 描述 | 
|---|---|
| settings | 此 JSON 对象包含持久存储的数据 | 
| coordinates | 触发的操作的坐标 | 
| title | 新标题 | 
| state | 仅当操作在其manifest.json中定义了多个状态时才设置。从 0 开始的值包含操作的当前状态 | 
| titleParameters | 描述新标题参数的 JSON 对象 | 
titleParameters 对象包含以下成员:
| TitleParameters | 描述 | 
|---|---|
| fontFamily | 标题字体 | 
| fontSize | 标题的字体大小 | 
| fontStyle | 标题的字体样式 | 
| fontUnderline | 标题下划线的布尔值 | 
| showTitle | 指标题是否可见的布尔值 | 
| titleAlignment | 标题位置 | 
| titleColor | 标题颜色 | 
deviceDidConnect
当设备插入计算机时,插件将接收该事件
{
 "event": "deviceDidConnect",
    "device": uniqueValue,
     "deviceInfo": {
        "name": "Device Name",
        "type": 0,
         "size": {
            "columns": 5,
            "rows": 3
        }
    },
}
| 成员 | 描述 | 
|---|---|
| event | deviceDidConnect | 
| device | 用于标识设备的值 | 
| deviceInfo | 一个json对象 | 
deviceInfo 对象包含以下成员:
| device | 描述 | 
|---|---|
| type | 设备类型 | 
| size | 设备拥有的键的列数和行数 | 
| name | 设备名称 | 
deviceDidDisconnect
当设备从计算机上拔下时,插件将收到该事件
{
 "event": "deviceDidDisconnect",
    "device": uniqueValue
}
| 成员 | 描述 | 
|---|---|
| event | deviceDidDisconnect | 
| device | 用于标识设备的值 | 
applicationDidLaunch
插件可以在其manifest.json中请求在某些应用程序启动或终止时收到通知。manifest.json应包含一个对象,该对象指定要监视的应用程序标识符列表。在 macOS 上,使用应用程序包标识符,而在 Windows 上使用 exe 文件名。例如,Apple Mail 示例插件使用以下内容:
"ApplicationsToMonitor": {
 "mac": [
  "com.apple.mail"
 ]
}
当启动受监视的应用程序时,插件将接收该事件
{
    "event": "applicationDidLaunch",
    "payload" : {
        "application": "com.apple.mail"
    }
}
| 成员 | 描述 | 
|---|---|
| event | applicationDidLaunch | 
| payload | 一个json对象 | 
payload 对象包含以下成员:
| payload | 描述 | 
|---|---|
| application | 已启动的应用程序的标识符 | 
applicationDidTerminate
插件可以在其manifest.json中请求在某些应用程序启动或终止时收到通知。manifest.json应包含一个对象,该对象指定要监视的应用程序标识符列表。在 macOS 上,使用应用程序包标识符,而在 Windows 上使用 exe 文件名。例如,Apple Mail 示例插件使用以下内容:
"ApplicationsToMonitor": {
 "mac": [
  "com.apple.mail"
 ]
}
当受监控的应用程序终止时,插件将接收该事件
{
    "event": "applicationDidTerminate",
    "payload" : {
        "application": "com.apple.mail"
    }
}
| 成员 | 描述 | 
|---|---|
| event | applicationDidLaunch | 
| payload | 一个json对象 | 
payload 对象包含以下成员:
| payload | 描述 | 
|---|---|
| application | 已启动的应用程序的标识符 | 
systemDidWakeUp
当计算机醒来时,插件将接收该事件
{
 "event": "systemDidWakeUp"
}
| 成员 | 描述 | 
|---|---|
| event | systemDidWakeUp | 
需要注意的几个要点:
插件在唤醒计算机时可能会获取多个事件systemDidWakeUp
当插件收到事件时,不能保证设备可用systemDidWakeUp
propertyInspectorDidAppear
当属性检查器出现时,插件将收到该事件
{
  "action": "com.mirabox.demo.action1", 
  "event": "propertyInspectorDidAppear", 
  "context": uniqueValue, 
  "device": uniqueValue
}
| 成员 | 描述 | 
|---|---|
| action | 操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作 | 
| event | propertyInspectorDidAppear | 
| context | 标识实例操作的值 | 
| device | 用于标识设备的值 | 
propertyInspectorDidDisappear
当属性检查器消失时,插件将收到该事件
{
    "action": "com.mirabox.demo.action1", 
    "event": "propertyInspectorDidDisappear", 
    "context": uniqueValue, 
    "device": uniqueValue
}
| 成员 | 描述 | 
|---|---|
| action | 操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作 | 
| event | propertyInspectorDidDisappear | 
| context | 标识实例操作的值 | 
| device | 用于标识设备的值 | 
sendToPlugin
当 propertyInspector(属性检查器)发送一个 sendToPlugin 事件时,插件将收到该事件
{
    "action": "com.mirabox.demo.action1", 
    "event": "sendToPlugin", 
    "context": uniqueValue, 
    "payload": {<json data>}
}
sendToPropertyInspector
当插件发送一个 sendToPropertyInspector 事件时,propertyInspector(属性检查器)将收到该事件
{
    "action": "com.mirabox.demo.action1", 
    "event": "sendToPropertyInspector", 
    "context": uniqueValue, 
    "payload": {<json data>}
}
