即用概览
建议先用内置的即用开发。 在客户端打开 即用 → 快速创建即用,选择类型和数据存放位置,然后描述你要的即用。内置的即用开发技能会替你设计、编写、检查并安装,安装后直接打开试用。
本章其余内容说明即用的工作方式,供你审阅、修改或手写即用时参考(见做第一个即用)。
即用是带独立窗口的插件。窗口左侧是你的页面,右侧是 SoduWork 的对话侧栏,用户可以在专门的界面里工作,同时在同一个地方让 AI 协助。
即用和其他插件走同一套安装、版本、审查和导出流程(见插件),清单里写 "template": "app"。
两种页面
| 类型 | source.type | 适用场景 |
|---|---|---|
| 包内页面 | package | 随插件分发的静态 HTML、CSS 和 JS。不需要服务器,不需要登录,离线也能用 |
| 网页 | external | 由你自己的 HTTP(S) 服务提供的页面,例如已有的业务系统 |
包内页面的入口文件,以及它引用的每个文件,都要列在 resources 里,kind 为 ui 或 asset。SoduWork 直接从包里读取这些文件,不会启动 HTTP 服务、Python 或 Node.js 后端。页面使用标准的浏览器 API,没有 Node.js 或文件系统权限。localStorage 和 IndexedDB 按账号和即用隔离,关闭重开、同一即用升级后都会保留。
显示在哪里
每个页面是 ui.contributions 里的一项,带一个 slot。即用使用 workspace.navigation,从左侧栏的 即用 打开。
"ui": {
"contributions": [
{
"id": "main",
"title": "发布说明",
"slot": "workspace.navigation",
"source": {
"type": "package",
"entry": "ui/index.html",
"openMode": "workspace",
"bridge": { "version": 1, "capabilities": ["conversation.send"] }
}
}
]
}
窗口按适合屏幕的默认尺寸打开,也可以自己设置(见 appWindow)。标题栏的 刷新 只重新加载你的页面,右侧对话和其中的草稿都会保留。
与 SoduWork 通信
页面通过 H5 SDK soduwork-app.js 与 SoduWork 通信。每个 SDK 方法都需要在 source.bridge.capabilities 里声明对应的能力,未声明的调用会被拒绝。见 H5 SDK 参考。
页面永远拿不到 SoduWork 会话、设备凭据、本机路径或 Electron 对象。
数据
新即用在顶层的 jiyong.storage 字段里声明数据存放位置:{"location": "local"} 或 {"location": "cloud"}。这个选择在创建即用时确定。
- 本地:数据保存在用户的电脑上。
- 云端:包里需要一个带版本号的
initialization.scriptJSON。Hub 按即用和账号各开一个独立的空间。页面和即用的 Skill 共用data.*方法,页面不持有数据库密码。
云端无法连接、未配置或未授权时,调用会失败,不会退回写本地。