跳到主要内容

小程序概览

小程序是直接在 AISCouncil 平台内运行的沙箱 Web 应用程序。它们使用自定义功能扩展平台 —— 从设备同步工具到可视化页面构建器 —— 同时在安全的、权限控制的环境中运行。

什么是小程序?

小程序是一个标准的 HTML/CSS/JS Web 应用程序,在平台内的沙箱 iframe 中运行。用户不是导航到单独的网站,而是从侧边栏中的应用部分启动小程序。应用程序替换聊天区域,并通过 window.ais SDK 访问平台 API。

小程序可以:

  • 读取和发送聊天消息以与 AI 模型交互
  • 本地存储数据,具有每应用隔离存储
  • 访问机器人配置以了解哪个模型处于活动状态
  • 显示通知和对话框通过平台 UI
  • 读取用户信息进行个性化
  • 注册钩子以扩展平台行为

它们如何工作

+---------------------------+
| AISCouncil |
| (host page) |
| |
| +---------------------+ |
| | Sandboxed iframe | |
| | (null origin) | |
| | | |
| | window.ais SDK | |
| | | | |
| +---|------------------+ |
| | postMessage |
| v |
| Message Bridge |
| (permission check) |
| (method dispatch) |
+---------------------------+
  1. SDK 注入 —— 当小程序启动时,平台创建沙箱 iframe 并在您的应用代码之前注入 window.ais SDK(约 2 KB)作为 <script> 前言。

  2. postMessage 桥接 —— 每个 SDK 调用(ais.storage.get(), ais.chat.send() 等)向宿主页发送 postMessage。宿主验证调用应用的权限并将请求分派到适当的平台模块。

  3. 响应 —— 结果通过 postMessage 发送回 iframe,SDK 在那里解析相应的 Promise。

安全模型

小程序在严格的安全沙箱中运行:

保护如何实现
空来源sandbox="allow-scripts allow-forms" —— 没有 allow-same-origin,所以 iframe 获得空来源
无父 DOM 访问无法读取或修改宿主页的 DOM、localStorage 或 cookie
无法对宿主来源进行网络访问无法向 aiscouncil.net 发起同源请求
权限门控 API**存储之外的每个 SDK 方法都需要用户明确授予权限
每应用存储隔离存储键带有 mp:{app-name}: 前缀 —— 应用无法读取彼此的数据
内容寻址缓存入口 HTML 在安装时获取并缓存,而不是每次启动时从网络加载
注意

小程序仍然可以向外部来源发起网络请求(它们自己的 CDN、第三方 API 等),因为 allow-scripts 允许 fetch()XMLHttpRequestnetwork:fetch 权限用于未来通过平台代理的请求,而不是限制出站网络访问。

权限对话框

当用户安装小程序时,权限对话框显示应用名称、描述和它请求的权限列表。用户必须在安装继续之前批准。仅请求 storage(始终允许)的应用仍会显示对话框以保持透明。

与其他平台的比较

功能aiscouncil 小程序WeChat 小程序Chrome 扩展PWA
运行时沙箱 iframe自定义 WebView隔离世界 + service worker完整浏览器标签页
最大大小5 MB (HTML) / 50 MB (包)2-20 MB无硬性限制无限制
需要审查否(直接安装)是(强制)是(Chrome Web Store)
离线支持是(安装时缓存)是(Service Worker)
平台 APIwindow.ais SDKwx APIchrome API仅 Web API
安全模型空来源 iframe自定义沙箱内容安全策略同源
分发URL、文件上传、注册表仅 WeChat StoreChrome Web Store仅 URL

查找和安装应用

从应用商店

  1. 点击左侧边栏中的应用图标(或移动端页眉中的应用网格图标)
  2. 浏览应用面板底部的应用商店部分
  3. 点击任何应用卡片上的安装
  4. 在对话框中查看权限并点击允许

通过 URL(侧载)

  1. 在应用面板中,找到侧载部分
  2. 将清单 URL 粘贴到文本字段中
  3. 点击安装
  4. 查看权限并批准

通过文件上传

  1. 在应用面板中,点击上传应用
  2. 选择 .html 文件(单文件应用)或 .ais 包(ZIP 存档)
  3. 查看权限并批准

请参阅侧载应用获取所有安装方法的完整详情。

启动和关闭应用

启动: 点击任何已安装应用卡片上的打开按钮。应用替换聊天区域并接管主内容面板。

关闭: 应用可以通过调用 ais.close() 自行关闭,或者用户可以点击应用标题栏中的 X 按钮返回聊天视图。

当应用关闭时:

  • iframe 被销毁,其消息处理程序被删除
  • 聊天区域恢复
  • 应用中任何未保存的状态丢失(应用应使用 ais.storage 持久化数据)

内置应用

平台附带两个内置小程序:

设备同步

在设备之间同步配置文件、API 密钥和设置。支持三种传输方式:

  • 局域网同步 —— 同一网络上设备之间的直接连接
  • 二维码 —— 扫描代码配对设备
  • 互联网中继 —— 通过 API 进行 WebRTC 信令,用于不同网络上的设备

权限:storage, config:read, auth:read, ui:toast, secrets:sync

应用构建器

使用 AI 内容生成可视化构建网页。选择模板,使用活动 AI 模型编辑部分,并导出为 URL 或 HTML 文件。使用自定义 slug 直接发布到 bcz.co

权限:storage, chat:read, chat:write, ui:toast, auth:read, pages:publish

下一步