# 参考文档

插件通过清单声明功能，通过 SDK 实现功能。查字段时先找到它所属的清单对象；查方法时先找到它所属的命名空间。

## 清单参考

从 [manifest.json](./manifest.md)查看插件的入口、版本和能力声明。`contributes` 中的每种功能都有自己的参考页。

| 功能 | 声明 | 用途 |
| --- | --- | --- |
| 动作 | [actions](./actions.md) | 接收参数，执行操作，返回步骤结果 |
| 数据结构 | [Schema](./schema.md) | 描述参数、结果和状态的类型 |
| 状态 | [stateSources](./states.md) | 发布可持续读取的当前值 |
| 超级块 | [widgets](./widgets.md) | 提供页面、尺寸和实例动作 |
| 超级块配置 | [WidgetSettings](./settings.md) | 定义配置表单 |
| 按钮预设 | [buttonPresets](./presets.md) | 提供默认外观和多状态按钮 |
| 数据请求 | [dataProviders](./data-providers.md) | 响应页面发起的一次请求 |
| 事件 | [events](./events-manifest.md) | 向飞块报告一次事件 |
| 插件服务 | [services 与 uses](./services.md) | 提供或调用插件服务 |

已知字段名时，可以直接使用[字段索引](./fields.md)。表单控件和图标名称分别见[参数编辑器](./editors.md)与[插件图标与资源](./icons.md)。

## 后台 API

使用 [definePlugin()](./node-sdk.md)注册处理函数。飞块调用这些函数时，会传入 `context`。

| 命名空间 | 用途 |
| --- | --- |
| [context.system](./system.md) | 打开应用、发送文本、调整音量等系统操作 |
| [context.native](./native.md) | 运行插件包中的可执行文件 |
| [context.network](./network.md) | 请求 HTTPS JSON 数据 |
| [context.deck](./deck.md) | 返回设备屏幕导航操作 |
| [context.states](./states-api.md) | 发布插件状态 |
| [context.widgets](./widgets-api.md) | 查询超级块实例 |
| [context.events](./events.md) | 发送事件 |
| [context.plugins](./plugins.md) | 调用其他插件的服务 |

系统操作需要在清单中声明[权限](./permissions.md)。

## 页面 API

超级块主页面使用 [FlyonDeckWidget](./page-sdk.md)，接收状态、请求数据和提交操作。超级块配置页面使用 [FlyonDeckWidgetConfig](./config-page.md)，插件全局设置页面使用 [FlyonDeckPluginConfig](./plugin-config-page.md)，读取和修改各自的配置草稿。

如果你要了解飞块如何连接这些接口，阅读[协议总览](../protocol/v1/overview.md)。
