# 运行环境与权限

插件后台运行在本机 Node.js 进程，页面运行在浏览器界面。这两个环境提供的能力不同，选择接口时先确认代码运行在哪里。

## 后台环境

后台可以使用 Node.js 标准库和插件携带的依赖，具有当前用户的本机文件访问能力。例如，缓存业务数据可以使用 `node:fs`，计算和格式化可以直接使用 JavaScript。

系统打开、输入、音量和截图等操作由飞块代理。插件调用 `context.system` 时，宿主检查清单权限和用户授权，然后执行操作。

`native.execute()` 运行插件包中的工具；`network.getJson()` 使用清单声明的来源请求公网 HTTPS 数据。方法行为分别见[原生工具](../../reference/native.md)与[网络请求](../../reference/network.md)。后台直接使用 Node.js 联网时，通过 `network.unrestricted` 声明这一用途。

## 页面环境

超级块页面通过页面 SDK 访问自己的状态、配置和实例操作。页面不会直接获得后台的文件或系统接口；需要这些功能时，把处理代码放在后台，再通过实例操作或数据提供者调用。

页面的网络连接由 `widgetConnectOrigins` 和浏览器策略控制。使用第三方接口时，确认接口允许页面来源，或者改由后台请求并向页面返回数据。

## 授权与发布

用户授权针对当前插件的版本与权限声明。新版本新增权限时，用户需要确认新的请求。开发者在发布说明中解释新增权限对应的功能，用户就能理解这次变更。
