Space Plugin SDKSpace Plugin SDK
首页
概述
  • 中文简体
  • English
首页
概述
  • 中文简体
  • English
  • 插件SDK

    • 概述
    • 开始
    • 术语
    • 基础
    • 清单
    • 国际化
    • 接收的事件
    • 发送的事件
    • 注册程序
    • 属性检查器
    • 风格指南
    • 更新日志
  • 示例

    • 计数器
    • 计时器
    • 数字展示
    • 时间
  • 支持

    • 帮助和错误报告

接收的事件

插件可以从 Stream Dock 应用程序接收的事件。

一旦 Stream Dock 应用程序加载了一个插件,并且用户设置了一些键来使用该插件,该插件将收到一些事件。同样,当显示属性检查器时,它将接收一些事件。

插件和属性检查器都可以接收以下事件:

Event描述
didReceiveSettingssettings 改变后收到的事件
didReceiveGlobalSettingsglobalSettings 改变后收到的事件

插件还可能会收到以下附加事件:

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操作的唯一标识符
eventdidReceiveSettings
context标识实例操作的值
device用于标识设备的值
payload一个json对象

payload 对象包含以下成员:

Payload描述
settings此 JSON 对象包含持久存储的数据
coordinates触发的操作的坐标
state仅当操作在其manifest.json中定义了多个状态时才设置。从 0 开始的值包含操作的当前状态
isInMultiAction布尔值,指示操作是否位于 Multi-Action 内部

didReceiveGlobalSettings

globalSettings 改变后收到的事件

{
  "event": "didReceiveGlobalSettings", 
  "payload": {
   "settings": {<json data>}
  }
}
成员描述
eventdidReceiveGlobalSettings
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操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作
eventdialDown
context标识实例操作的值
device用于标识设备的值
payload一个json对象

payload 对象包含以下成员:

Payload描述
settings此 JSON 对象包含持久存储的数据
coordinates触发的操作的坐标
controllerEncoder

dialUp

当用户释放按下旋钮时,插件将接收事件

{
  "action": "com.mirabox.demo.action2",
  "event": "dialUp",
  "context": uniqueValue,
  "device": uniqueValue,
  "payload": {
    "controller": "Encoder",
    "settings": {<json data>},
    "coordinates": {
      "column": 0,
      "row": 0
    },
  }
}
成员描述
action操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作
eventdialUp
context标识实例操作的值
device用于标识设备的值
payload一个json对象

payload 对象包含以下成员:

Payload描述
settings此 JSON 对象包含持久存储的数据
coordinates触发的操作的坐标
controllerEncoder

dialRotate

当用户旋转旋钮时,插件将接收事件

{
  "action": "com.mirabox.demo.action2",
  "event": "dialRotate",
  "context": uniqueValue,
  "device": uniqueValue,
  "payload": {
    "controller": "Encoder",
    "settings": {<json data>},
    "coordinates": {
      "column": 0,
      "row": 0
    },
    "ticks": -5,
    "pressed": false
  }
}
成员描述
action操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作
eventdialRotate
context标识实例操作的值
device用于标识设备的值
payload一个json对象

payload 对象包含以下成员:

Payload描述
settings此 JSON 对象包含持久存储的数据
coordinates触发的操作的坐标
controllerEncoder
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操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作
eventkeyDown
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操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作
eventkeyUp
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操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作
eventwillAppear
context标识实例操作的值
device用于标识设备的值
payload一个json对象

payload 对象包含以下成员:

Payload描述
settings此 JSON 对象包含持久存储的数据
coordinates触发的操作的坐标
controllerKeypad正常的按键,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操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作
eventwillDisappear
context标识实例操作的值
device用于标识设备的值
payload一个json对象

payload 对象包含以下成员:

Payload描述
settings此 JSON 对象包含持久存储的数据
coordinates触发的操作的坐标
controllerKeypad正常的按键,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操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作
eventtitleParametersDidChange
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
        }
    },
}
成员描述
eventdeviceDidConnect
device用于标识设备的值
deviceInfo一个json对象

deviceInfo 对象包含以下成员:

device描述
type设备类型
size设备拥有的键的列数和行数
name设备名称

deviceDidDisconnect

当设备从计算机上拔下时,插件将收到该事件

{
 "event": "deviceDidDisconnect",
    "device": uniqueValue
}
成员描述
eventdeviceDidDisconnect
device用于标识设备的值

applicationDidLaunch

插件可以在其manifest.json中请求在某些应用程序启动或终止时收到通知。manifest.json应包含一个对象,该对象指定要监视的应用程序标识符列表。在 macOS 上,使用应用程序包标识符,而在 Windows 上使用 exe 文件名。例如,Apple Mail 示例插件使用以下内容:

"ApplicationsToMonitor": {
 "mac": [
  "com.apple.mail"
 ]
}

当启动受监视的应用程序时,插件将接收该事件

{
    "event": "applicationDidLaunch",
    "payload" : {
        "application": "com.apple.mail"
    }
}
成员描述
eventapplicationDidLaunch
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"
    }
}
成员描述
eventapplicationDidLaunch
payload一个json对象

payload 对象包含以下成员:

payload描述
application已启动的应用程序的标识符

systemDidWakeUp

当计算机醒来时,插件将接收该事件

{
 "event": "systemDidWakeUp"
}
成员描述
eventsystemDidWakeUp

需要注意的几个要点:

插件在唤醒计算机时可能会获取多个事件systemDidWakeUp

当插件收到事件时,不能保证设备可用systemDidWakeUp

propertyInspectorDidAppear

当属性检查器出现时,插件将收到该事件

{
  "action": "com.mirabox.demo.action1", 
  "event": "propertyInspectorDidAppear", 
  "context": uniqueValue, 
  "device": uniqueValue
}
成员描述
action操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作
eventpropertyInspectorDidAppear
context标识实例操作的值
device用于标识设备的值

propertyInspectorDidDisappear

当属性检查器消失时,插件将收到该事件

{
    "action": "com.mirabox.demo.action1", 
    "event": "propertyInspectorDidDisappear", 
    "context": uniqueValue, 
    "device": uniqueValue
}
成员描述
action操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作
eventpropertyInspectorDidDisappear
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>}
}
Last Updated:
Contributors: Heart
Prev
国际化
Next
发送的事件