开发者文档
TABTAB 插件是运行于沙箱 WebView 中的网页。本文档涵盖将其构建为可安装、可升级、权限受控的插件所需的全部信息。
一个 TABTAB 插件由三部分构成:网页、manifest.json 与 ZIP 包。 不绑定任何构建系统 —— Vite、webpack 或纯静态页面皆可, 唯一要求是最终产物为一个自包含页面。
5 分钟
快速开始
完成首个可在面板中唤起的插件,涵盖工程结构与打包命令。
参考
Manifest 规范
逐字段说明语义、必填与可选属性,以及填写错误时宿主返回的具体错误。
9 种权限
权限模型
9 种权限、同同意门、包内交叉校验,以及「读」与「写」为何必须分开声明。
41 个方法
能力桥 API
共 41 个方法,逐项列出所需权限、参数与线程归属。
分发
市场与签名
索引结构、发布流程,以及 release 构建中的强制验签机制。
ADR
架构决策
子进程为何不构成特权层、验签为何锚定消费点,以及已知缺口。
参考实际插件
插件市场现有 15 个插件, 权限范围自「仅读写自身存储」至「读本机文件 + 屏幕截取 + 联网」不等。 每个条目均完整列出其声明的指令与权限 —— 该清单即为其运行时可获取的能力边界。
目录结构
my-plugin/
├── manifest.json # 身份、指令、权限
├── index.html # 入口
├── icon.svg # 方形图标
├── dist/ # 构建产物(随包发布)
│ ├── manifest.json
│ ├── icon.svg
│ └── index.html
└── my-plugin-1.0.0.zipZIP 包根目录放置 manifest.json 与入口页面。 不含任何原生构建步骤。
四项常见约定
- Manifest 以
deny_unknown_fields解析。字段名拼写错误不会产生警告,只会导致插件加载失败。 - 权限应仅声明实际使用项。每多声明一项,即要求用户为一项不会用到的能力授权, 且该授权在卸载前持续有效。
fs:read是敏感权限,且读取有闸门。它要用户单独点头;即便拿到了,宿主也只接受绝对路径、已存在的 普通文件,不跟符号链接。搜索与读取是两条路 ——闸门细节。- 公开市场仅接受纯网页插件。声明
runtime.kind = "process"的安装包会被构建脚本直接拒绝。