MYTOOLBOX · DEVELOPER PLATFORM

第三方模块开发者手册

使用 HTML、CSS 和 JavaScript 构建工作模式卡片,并通过宿主管理的 Bridge、按需授权、独立加密和七天审计接入 MyToolbox 能力。

当前协议Schema 12 · 兼容 Schema 1–11

12当前 Schema
3运行表面
100 MB安装包上限
512包内文件上限
QUICK START

从一个离线可见的卡片开始。

最小模块是以 .mytoolbox-workmodule 结尾的文件夹。首屏必须在无网络、无 Cookie、未授权环境中仍能显示可理解的 UI。

01

建立包结构

创建 manifest.json 与 index.html;settings.json 和 assets 为可选内容。

02

声明稳定身份

使用永久反向域名 identifier、语义版本、双语名称、SF Symbol 和安全相对入口。

03

实现离线首屏

页面在四秒内显示文字、按钮、输入框、图片、SVG 或 Canvas,不以空白等待授权。

04

通过公开 Bridge 调用

使用 window.mytoolbox.request;权限由 operation 决定,manifest 不直接授予能力。

05

验证生命周期

处理拒绝、离线、停止、重载和 mytoolbox-plugin-stop,并取消计时器与请求。

06

导入并核对

在插件中心检查自动识别权限、运行表面、审计、加密数据和签名身份。

PACKAGE

最小包结构

运行期 Cache 与 Data 由宿主建立,不应预先放入发行包。绝对路径、符号链接和 .. 路径穿越会被拒绝。

Example.mytoolbox-workmodule/
├── manifest.json
├── index.html
├── settings.json          # 可选,生成原生设置
└── assets/                # 可选,包内静态资源
MANIFEST

Schema 12 清单

清单描述身份、表面、入口、尺寸、介绍、命令和受控宿主能力;第三方 permissions 自述不会直接获得授权。

{
  "schemaVersion": 12,
  "identifier": "dev.example.weather",
  "version": "1.0.0",
  "runtime": "web",
  "names": {"zh-Hans": "城市天气", "en": "City Weather"},
  "summaries": {"zh-Hans": "当前天气", "en": "Current weather"},
  "symbol": "cloud.sun",
  "entryPoint": "index.html",
  "preferredHeight": 220,
  "supportedSurfaces": ["floatingWindow", "menuBar", "horizontalStrip"],
  "cardSizing": {"mode": "content", "minHeight": 120, "maxHeight": 520},
  "minimumAppVersion": "0.4.0"
}

身份与入口

  • identifier 永久不变且不能与内置或已安装模块重复
  • version 使用语义版本
  • runtime 第三方固定为 web
  • entryPoint 必须是包内安全相对路径
  • names 与 summaries 建议同时提供 zh-Hans 和 en

表面与响应式布局

  • supportedSurfaces 支持 floatingWindow、menuBar、horizontalStrip
  • horizontalLayout 可为横版提供独立入口和宽高边界
  • adaptiveLayout 允许宿主在响应式重排后做受限微缩
  • cardSizing.content 由宿主 ResizeObserver 测量语义内容

平台能力

  • presentation 提供介绍、多图、联系方式和版权
  • commandCenter 最多声明 24 个结构化指令
  • services 声明受控 macOS 服务
  • dataTransfer 管理加密便携数据
  • updateActions 仅允许声明式 Data/Cache 迁移