API 参考
SDK 以 JadeView 类为入口(声明 变量 Jade <类型 = JadeView>),窗口操作、系统工具、存储、托盘、菜单、应用包分别挂在成员对象 Jade.窗口 / Jade.系统 / Jade.YAML / Jade.托盘 / Jade.菜单 / Jade.应用包 上。
本页签名与最新版模块声明一致。带默认值的参数在调用时可留空(如
创建窗口 (地址, 0, , ))。
核心方法
初始化
初始化 JadeView 应用并自动订阅默认的非拦截事件。可拦截事件需在此之前用 订阅事件 手动订阅。
逻辑型 初始化 (
调试模式, // 逻辑型,默认 假——是否启用 DevTools、调试快捷键等开发向能力
日志路径, // 文本型,默认 ""——日志文件路径;空 = 不写日志
数据目录, // 文本型,默认 ""——数据根目录;空 = 自动选择
应用名, // 文本型——应用显示名称(关于对话框、通知等使用)
应用标识, // 文本型——唯一标识,建议 ≥6 字符反域名格式;
// 用于数据目录、单实例管道,JAPK 模式下是 JADE:// 主机名
单实例 // 逻辑型,默认 真——再次启动会把命令行转发给首实例(触发 第二实例 事件)
)返回 真 表示成功。初始化结果同时经 应用就绪 事件回报(失败时 数据 为错误描述)。
运行消息循环
整数 运行消息循环 ()进入阻塞消息循环,在 初始化 之后调用,是启动方法的最后一步。
退出程序
逻辑型 退出程序 ()清理缓存并结束消息循环。通常在 全部窗口已关闭 事件回调中调用。
取版本 / 取WebView版本
文本型 取版本 () // JadeView 版本字符串(含构建号),静态方法
文本型 取WebView版本 () // WebView2 运行时版本号窗口创建
创建窗口
创建标准 WebView 窗口(带系统标题栏 / 边框,样式可配)。
整数 创建窗口 (
地址, // 文本型——初始地址(http(s):// 或协议服务返回的本地地址)
父窗口ID, // 整数,默认 0——0 = 顶层窗口
窗口选项, // JadeWindowOptions,默认 空对象
视图设置 // JadeViewOptions,默认 空对象
)
// 返回 window_id(>0 成功,0 失败——如在 应用就绪 之前调用)JadeWindowOptions 字段
| 字段 | 类型 | 说明 |
|---|---|---|
标题 | 文本型 | 窗口标题栏文字 |
宽度 / 高度 | 整数 | 初始尺寸(像素) |
左边 / 顶边 | 整数 | 窗口左上角坐标;两者都为 -1 表示居中 |
可调整大小 | 逻辑型 | 是否可拖边缘改大小 |
边框风格 | 文本型 | 边框样式,见 窗口边框样式 常量类 |
透明窗口 | 逻辑型 | 透明背景(使用 Mica 等材质时开启) |
背景颜色 | 文本型 | 背景色 #RRGGBB(AA) |
置顶 | 逻辑型 | 是否总在最前 |
主题 | 文本型 | 主题,见 窗口主题 常量类 |
最大化启动 / 允许最大化 / 允许最小化 | 逻辑型 | 打开时最大化 / 标题栏按钮开关 |
最小宽度 / 最小高度 / 最大宽度 / 最大高度 | 整数 | 尺寸约束,0 = 不限制 |
全屏启动 | 逻辑型 | 打开时全屏 |
默认聚焦 | 逻辑型 | 打开后是否抢键盘焦点 |
初始隐藏 | 逻辑型 | 先创建不显示(适合先加载再显示) |
使用页面图标 | 逻辑型 | 用网页 favicon 当窗口图标 |
内容保护 | 逻辑型 | 防截屏 / 录屏 |
自动保存状态 | 逻辑型 | 按 window_id 记忆窗口位置,下次创建自动恢复 |
任务栏隐藏 | 逻辑型 | 不进任务栏 / Alt-Tab |
不抢焦点 | 逻辑型 | 点击 / 显示都不激活 |
JadeViewOptions 字段
| 字段 | 类型 | 说明 |
|---|---|---|
自动播放 | 逻辑型 | 允许媒体自动播放 |
后台节流 | 逻辑型 | 后台时降低定时器 / 动画频率 |
禁止右键 | 逻辑型 | 禁用网页右键菜单 |
用户代理 | 文本型 | 自定义 UA,空 = 默认 |
预加载脚本 | 文本型 | 页面脚本运行前注入的 JS |
允许全屏 | 逻辑型 | 允许页面全屏 API |
PostMessage白名单 | 文本型 | postMessage 转发白名单(接近页面 origin 的字符串);协议服务加载的内置页始终可收 |
源站白名单 | 文本型 | CORS 来源白名单,逗号 / 分号分隔,严格精确匹配 |
账号自动填充 / 资料自动填充 | 逻辑型 | 账密自动填充 / 通用表单填充 |
无痕模式 | 逻辑型 | 无痕模式 |
禁用剪切板 | 逻辑型 | 禁用剪贴板读写权限 |
代理地址 | 文本型 | http://host:port 或 socks5://host:port |
启动获取焦点 | 逻辑型 | WebView 初始是否自动获取焦点 |
创建无边框窗口
整数 创建无边框窗口 (地址, 视图设置)创建独立无边框 WebView 窗口,适合自绘标题栏、悬浮工具窗。只有这类窗口 Jade.窗口.取句柄 才返回有效 HWND。
置协议服务目录
文本型 置协议服务目录 (
根目录, // 文本型,默认 ""——前端目录 / .japk 路径;空 = 服务已从内存加载的 JAPK
热载模式 // 逻辑型,默认 假——仅文件系统模式有效:改文件即时刷新页面(150ms 防抖)
)
// 返回可直接传给 创建窗口 的本地资源地址注册安全资源 / 注销安全资源
文本型 注册安全资源 (窗口ID, 本地目录, 过期时长)
// 窗口ID:0 = 全局;过期时长:秒,0 = 永不过期。成功返回 jade:// 地址,失败返回空文本
逻辑型 注销安全资源 (令牌或路径)窗口操作(Jade.窗口.)
基础操作
| 方法 | 说明 |
|---|---|
置标题 (窗口ID, 标题) | 改窗口标题栏文字 |
置大小 (窗口ID, 宽度, 高度) | 按像素改窗口宽高 |
置位置 (窗口ID, X坐标, Y坐标) | 按像素改窗口位置 |
置可视 (窗口ID, 可见) | 显示 / 隐藏窗口 |
置焦点 (窗口ID) | 使窗口获取键盘焦点 |
置顶 (窗口ID, 置顶) | 窗口置顶开关 |
关闭 (窗口ID) | 关闭指定窗口 |
最小化 (窗口ID) | 收到任务栏 |
最大化切换 (窗口ID) | 最大化 ⇄ 还原 |
置全屏 (窗口ID, 全屏) | 全屏开关 |
置最小尺寸 / 置最大尺寸 (窗口ID, 宽, 高) | 尺寸约束 |
置可调整大小 (窗口ID, 是否可调整) | 允许 / 禁止拖动改大小 |
置启用 (窗口ID, 启用) | 禁用后用户点不了窗口内控件 |
刷新 (窗口ID) | 重新加载当前页 |
取数量 () | 当前活动窗口数量 |
清理所有窗口 () | 关闭并清理所有窗口(静态) |
清注册资源 (窗口ID) | 清理该窗口的全部已注册资源,返回数量 |
状态查询
| 方法 | 返回 | 说明 |
|---|---|---|
是否最大化 / 是否最小化 / 是否可见 / 是否聚焦 / 是否全屏 (窗口ID) | 逻辑型 | 布尔状态 |
取位置尺寸 (窗口ID) | 文本型 | 窗口边界 JSON(x / y / width / height) |
取主题 (窗口ID) | 整数 | 当前主题状态码(1 = 深色) |
取句柄 (窗口ID) | 变整数 | 原生 HWND;标准窗口固定返回 0,仅无边框窗口有效 |
主题与外观
| 方法 | 说明 |
|---|---|
置主题 (窗口ID, 主题) | 窗口主题.浅色 / .深色 / .跟随系统 |
置材质 (窗口ID, 窗口材质) | Win11 DWM 材质:窗口材质.云母 / .云母亚色 / .亚克力 / .无 |
置背景色 (窗口ID, 颜色值) | 纯色底 #RRGGBB(AA),不依赖 Mica |
置边框样式 (窗口ID, 边框样式) | 见 窗口边框样式 常量类 |
置标题栏覆盖层样式 (窗口ID, 高度, 图标颜色, 悬停背景色) | title-overlay 模式下控制按钮配色(高度 ≤0 不改) |
置窗口层级 (窗口ID, 层级) | 窗口层级.置顶 / .普通 / .置底 / .贴桌面(贴桌面 = 寄生壁纸层) |
置内容保护 (窗口ID, 启用) | 防截屏(截图 / 录屏拍到黑屏) |
置鼠标穿透 (窗口ID, 是否穿透) | 悬浮窗 / overlay 场景;开启后窗口点不动,记得恢复 |
置不进任务栏 (窗口ID, 不进任务栏) | 运行时切换任务栏 / Alt-Tab 可见性 |
置不抢焦点 (窗口ID, 不抢焦点) | 点击 / 显示不激活 |
置任务栏进度 (窗口ID, 位置, 进度条状态) | ITaskbarList3;状态见 进度条状态类型 常量类 |
置任务栏闪烁 (窗口ID, 闪烁次数) | FlashWindowEx 闪任务栏图标 |
WebView 操作
| 方法 | 说明 |
|---|---|
Jade.导航到地址 (窗口ID, 地址, 协议头) | 页面跳转;协议头 为 JSON 请求头(默认 "") |
Jade.窗口.刷新 (窗口ID) | 重新加载当前页 |
Jade.执行脚本 (窗口ID, 脚本文本) | 执行 JS,返回递增的请求 id(>0 成功 / 0 失败);结果经 脚本执行结果 事件按 id 异步回传 |
Jade.置缩放比例 (窗口ID, 比例) | 整页缩放,1.0 = 100% |
Jade.取URL (窗口ID, 缓冲区大小) | 当前 WebView 地址(缓冲区默认 4096) |
Jade.系统.打开开发者工具 / 关闭开发者工具 / 开发者工具是否已打开 (窗口ID) | DevTools 控制(关闭在 Windows 上不受支持) |
Jade.系统.清除浏览数据 (窗口ID) | 清 Cookie / 缓存 / LocalStorage |
执行脚本 返回整数请求 id,不是 JS 的执行结果。判断是否提交成功用 > 0;真正的 JS 结果只在 脚本执行结果 事件里,事件数据 JSON 中的 id 与返回值对应。
事件与 IPC
订阅事件 / 注销订阅事件
整数 订阅事件 (事件名称) // 返回回调 id;重复订阅返回已有 id
逻辑型 注销订阅事件 (事件名称) // 仅影响当前对象的订阅事件名用 订阅_窗口事件 / 订阅_视图事件 / 订阅_通知事件 / 订阅_系统事件 常量类,避免裸写字符串:
Jade.订阅事件 (订阅_视图事件.请求新窗口)
Jade.订阅事件 (订阅_视图事件.文件拖放)置IPC频道回调 / 注册IPC通道
逻辑型 置IPC频道回调 (对象实例, 方法)
// 对象实例:填 本对象;方法:回调方法的输出名(立即数或常量)
逻辑型 注册IPC通道 (通道名) // 重复注册同一通道直接返回真
逻辑型 注销IPC通道 (通道名)
逻辑型 清除IPC频道回调 ()回调方法签名固定(@强制输出 + @输出名 是火山导出对象方法的写法):
方法 IPC频道消息 <公开 类型 = 文本型 @强制输出 = 真 @输出名 = "ipcChannelMessageCallback">
参数 通道名 <类型 = 文本型>
参数 窗口ID <类型 = 整数>
参数 数据 <类型 = 文本型>
{
返回 ("") // 空文本 = 不回传;非空 = 应答给前端 jade.invoke 的 Promise
}发送IPC消息
整数 发送IPC消息 (窗口ID, 事件名称, 消息内容)
// 前端 jade.on('事件名称', payload => ...) 接收事件总表
事件以「定义事件」暴露,接收方法名为 JadeView_<事件名>,前两个参数固定为 来源对象(JadeView)与 标记值(整数)。「拦截」列打 ✔ 的事件返回 1 拦截、0 放行,其余事件返回值忽略;「订阅」列为「自动」的事件 初始化 时自动订阅。
应用生命周期
| 事件 | 事件参数 | 拦截 | 订阅 | 说明 |
|---|---|---|---|---|
应用就绪 | 窗口ID, 数据 | 自动 | 初始化后的第一入口,在此创建主窗口 | |
第二实例 | 窗口ID, 数据, 命令行参数 | 自动 | 单实例模式下再次启动;命令行数组已排除 exe 路径 | |
程序崩溃回调 | 窗口ID, 崩溃代码 | 自动 | 崩溃代码见 崩溃代码类型 常量类 |
窗口
| 事件 | 事件参数 | 拦截 | 订阅 |
|---|---|---|---|
窗口已创建 / 窗口已关闭 / 全部窗口已关闭 / 窗口已销毁 | 窗口ID | 自动 | |
窗口即将关闭 | 窗口ID | ✔ | 手动 |
窗口尺寸改变 | 窗口ID, 宽度, 高度 | 自动 | |
窗口位置改变 | 窗口ID, X坐标, Y坐标 | 自动 | |
窗口边界改变 | 窗口ID, X坐标, Y坐标, 宽度, 高度, 数据 | 自动 | |
窗口获得焦点 / 窗口失去焦点 | 窗口ID | 自动 | |
窗口状态改变 | 窗口ID, 已最大化 | 自动 | |
窗口全屏状态改变 | 窗口ID, 全屏 | 自动 | |
主题改变 | 窗口ID | 自动 | |
更新窗口图标 | 窗口ID, 数据 | 自动 |
WebView / 导航
| 事件 | 事件参数 | 拦截 | 订阅 |
|---|---|---|---|
即将导航 | 窗口ID, 地址 | ✔ | 手动 |
请求新窗口 | 窗口ID, 地址 | ✔ | 手动 |
开始加载 / 加载完成 | 窗口ID, 地址 | 自动 | |
页面标题更新 | 窗口ID, 标题 | 自动 | |
页面图标更新 | 窗口ID, 数据 | 自动 | |
下载开始 | 窗口ID, 数据 | ✔(返回 1 拦截下载) | 手动 |
下载完成 | 窗口ID, 下载地址, 成功, 数据 | 自动 | |
脚本执行结果 | 窗口ID, 数据 | 自动 | |
页面消息 | 窗口ID, 来源, 消息 | 自动 | |
文件拖放 | 窗口ID, 数据 | ✔(enter/drop 阶段) | 手动 |
异步调用响应 | 窗口ID, 数据 | 自动 |
托盘 / 菜单 / 其它
| 事件 | 事件参数 | 订阅 |
|---|---|---|
托盘交互事件 | 事件类型, 托盘ID | 自动(事件类型见 托盘事件类型 常量类) |
托盘菜单命令事件 | 托盘ID, 键名, 项目ID, 项目类型, 已选中, 风险项目 | 自动 |
菜单事件回调 | 窗口ID, X坐标, Y坐标, 菜单场景, 默认菜单项列表, 数据 | 手动(订阅_视图事件.菜单事件) |
自定义菜单事件 | 窗口ID, 数据(item_id 字符串) | 手动(订阅_视图事件.自定义菜单事件) |
全局热键 | 窗口ID, 热键ID, 修饰键, 虚拟键码 | 自动 |
通知已显示 / 通知已关闭 / 通知失败 / 通知动作 | 窗口ID, 数据 | 自动 |
应用包加载成功 / 应用包加载失败 | 窗口ID, 数据 | 自动 |
对话框与通知
同步 API
同步弹出并阻塞,直接返回 UTF-8 JSON 结果文本(内部已处理指针释放,无需手动释放)。
文本型 打开文件对话框 (窗口ID, 标题, 默认路径, 按钮文本, 过滤器, 属性文本)
文本型 保存文件对话框 (窗口ID, 标题, 默认路径, 按钮文本, 过滤器)
文本型 消息框 (窗口ID, 标题, 正文, 详情, 按钮列表, 默认按钮索引, 取消按钮索引, 类型名)
整数 显示错误框 (窗口ID, 标题, 内容)
逻辑型 打开关于对话框 (窗口ID) // 应用名取自 初始化,图标取窗口当前图标过滤器:JSON 数组字符串,如[{"name":"图片","extensions":["jpg","png"]}]属性文本:逗号分隔,见对话框属性常量类,如openFile,multiSelections类型名:见提示框类型常量类(none/info/warning/error/question)- 打开文件返回
{"canceled":false,"filePaths":[...]};消息框返回{"response":0}(0 = 确定,1 = 取消)
异步 API
不阻塞消息处理,结果经对象方法回调返回文本型 JSON:
逻辑型 显示打开文件对话框_异步 (窗口ID, 标题, 默认路径, 按钮文本, 过滤器, 属性文本, 对象实例, 方法)
逻辑型 显示保存文件对话框_异步 (窗口ID, 标题, 默认路径, 按钮文本, 过滤器, 对象实例, 方法)
逻辑型 显示消息框_异步 (窗口ID, 标题, 正文, 详情, 按钮列表, 默认按钮索引, 取消按钮索引, 类型名, 对象实例, 方法)回调方法只有一个 数据文本 参数,须带 @强制输出 / @输出名:
方法 对话框结果 <公开 类型 = 整数 @强制输出 = 真 @输出名 = "dialogBoxCallback">
参数 数据文本 <类型 = 文本型>
{
调试输出 (数据文本)
返回 (0)
}显示通知
逻辑型 显示通知 (参数对象) // JadeNotificationOptionsJadeNotificationOptions 字段 | 类型 | 说明 |
|---|---|---|
标题 / 正文 | 文本型 | 通知标题与正文 |
图标 | 文本型 | 图标文件路径 |
超时 | 整数 | 毫秒,0 = 系统默认 |
按钮1 / 按钮2 / 文本3 | 文本型 | 通知按钮(点击经 通知动作 事件回传) |
动作 | 文本型 | 附加动作参数 |
全局热键
整数 注册全局热键 (修饰键, 键码) // 成功返回热键 id(>0),失败 0
逻辑型 注销全局热键 (热键ID)修饰键:热键功能键常量组合,如位或 (热键功能键.Control, 热键功能键.Alt)键码:Win32 虚拟键码(如74= J)- 按下经
全局热键事件回报,焦点不在本程序也生效
系统托盘(Jade.托盘.)
托盘对象持有 tray_id,本类方法自动使用,无需外部传递。托盘事件(托盘交互事件 / 托盘菜单命令事件)经 JadeView 自动订阅。
逻辑型 创建 () // 已创建过直接返回真
逻辑型 销毁 ()
逻辑型 置可见 (可见)
逻辑型 置提示 (提示内容) // 鼠标悬停提示
逻辑型 置图标 (图标路径) // .ico 文件
逻辑型 置图标2 (图标数据) // 字节集(ICO/PNG 内容),无需临时文件托盘菜单
菜单为扁平表,用 父键名称 指向父项的 键名称 实现嵌套;每次修改立即应用:
整数 添加菜单项 (菜单类型, 键名称, 显示名称, 父键名称, 禁止, 风险项目)
// 菜单类型:托盘菜单项类型.普通项 / .子菜单 / .分隔线 / .分组
// 键名称:业务主键,整表唯一(分隔线也要唯一 key),点击经 托盘菜单命令事件 按它分派
逻辑型 置菜单禁止 (键名称, 是否禁止)
逻辑型 置菜单危险 (键名称, 是否危险) // 风险项(如「退出」标红)
逻辑型 置菜单标题 (键名称, 显示标题)
逻辑型 删除菜单 (键名称)
逻辑型 清空菜单 ()右键菜单(Jade.菜单.)
接管 WebView 右键菜单的流程:订阅 菜单事件 → 在 菜单事件回调 里创建菜单项并 置显示 → WebView2 弹出原生菜单 → 用户点击自定义项触发 自定义菜单事件(数据 = item_id)。不订阅 菜单事件 时显示 WebView2 默认菜单。
整数 创建 (显示名称, 菜单类型, 父菜单ID, 菜单ID)
// 菜单类型:菜单类型.命令 / .复选框 / .单选 / .分隔线 / .子菜单 / .默认菜单项
// 默认菜单项(kind=5):显示名称填 原生菜单项 常量(如 原生菜单项.复制),
// 由 WebView2 执行原生操作,不触发 自定义菜单事件
// 菜单ID:自定义 id,点击经 自定义菜单事件 回传(默认菜单项忽略)
// 返回 menu_id(0 = 失败)
逻辑型 置启用 (菜单ID, 是否启用)
逻辑型 置选中 (菜单ID, 是否选中) // 复选框 / 单选项
逻辑型 置显示 (窗口ID, 菜单ID数组) // 在 菜单事件回调 中调用,参数为整数数组类
逻辑型 销毁 (菜单ID) // 销毁菜单项及其子项YAML 配置存储(Jade.YAML.)
数据文件存于 初始化 设置的数据目录(相对文件名、可不带扩展名;禁止 \ / .. : 等路径穿越字符)。键路径用点号分层、[N] 取数组下标,如 user.name、items[0]。
| 方法 | 返回 | 说明 |
|---|---|---|
写 (文件名, 键路径, 值) | 逻辑型 | 按 JSON → YAML 片段 → 纯文本优先级解析("42" 存为数字);路径不存在自动创建 |
写字符串 (文件名, 键路径, 值) | 逻辑型 | 强制按字符串原样存储 |
读 (文件名, 键路径, 缓冲区大小) | 文本型 | 读取值;结果超缓冲自动扩容重查(上限 64MB),失败返回空文本 |
读字符串 (文件名, 键路径) | 文本型 | 读取并以 JSON 文本返回 |
读全部 (文件名, 缓冲区大小) | 文本型 | 整个文件转 JSON 文本 |
是否存在 (文件名, 键路径) | 逻辑型 | 键路径是否存在 |
删除 (文件名, 键路径) | 逻辑型 | 删除映射键或数组元素 |
列出键 (文件名, 键路径, 缓冲区大小) | 文本型 | 路径下所有 key 的 JSON 数组;键路径空 = 根节点 |
取长度 (文件名, 键路径) | 整数 | 映射 key 数 / 数组长度;-2 = 非映射非数组,-1 = IO 错误 |
清空 (文件名) | 逻辑型 | 清空为 {} |
删除文件 (文件名) | 逻辑型 | 删除数据文件及锁文件 / 临时文件 |
JAPK 应用包(Jade.应用包.)
前端资源加密 / 签名打包。返回值约定与其它模块不同:0 = 成功,负数 = 错误码。
| 方法 | 返回 | 说明 |
|---|---|---|
设置公钥 (公钥字符串) | 整数 | Base64 Ed25519 公钥(44 字符);设置后仅接受签名包,须在加载前调用 |
加载字节集 (应用包数据) | 整数 | 从内存加载 JAPK;错误码见方法注释(-5 签名验证失败、-6 标识不匹配等) |
加载视窗文件资源 (应用包数据) | 整数 | 从视窗文件资源加载(-99 = 资源转字节集失败) |
是否加载 () | 逻辑型 | JAPK 是否已加载 |
获取签名 () | 文本型 | 当前包的 app_signature |
获取签名信息 () | 文本型 | 签名信息 JSON(仅签名包有值) |
卸载 () | 整数 | 清除加载状态,释放内存 |
加载后调用 置协议服务目录 ("")(根目录留空)即得到 JADE://<应用标识> 形式的地址。JAPK 的应用名 / 应用标识必须与 初始化 一致。
系统工具(Jade.系统.)
| 方法 | 返回 | 说明 |
|---|---|---|
取剪贴板文本 (缓冲区长度) / 置剪贴板文本 (文本内容) | 文本型 / 逻辑型 | 剪贴板读写 |
取定义路径 (名称, 缓冲区大小) | 文本型 | 预定义路径,名称见 路径常量(home / appData / temp / desktop / downloads / logs …) |
取区域设置 () | 文本型 | 系统语言(BCP 47,如 zh-CN) |
取显示器信息 () | 文本型 | 所有显示器 JSON 数组(bounds / work_area / scale_factor / is_primary) |
取鼠标坐标 () | 位置类 | 鼠标屏幕坐标(横向位置 / 纵向位置) |
是否为Win11 () | 逻辑型 | 判断 Win11(决定 Mica 材质可用性) |
取文件图标 (路径, 尺寸, 窗口ID, 过期秒数) | 文本型 | 提取任意文件 / 文件夹图标为 PNG,注册成 jade:// 资源并返回 URL |
注册协议 (协议名) / 注销协议 (协议名) | 逻辑型 | 自定义 URL 协议(如 myapp://) |
注册文件关联 (扩展名, 友好名称) / 注销文件关联 (扩展名) | 逻辑型 | 文件扩展名关联 |
置开机自启 (启用, 启动参数) / 是否开机自启 () | 逻辑型 | 注册表 Run 项 |
打印页面 (窗口ID) | 整数 | WebView 内置打印对话框 |
打印文件 (文件路径) | 逻辑型 | 系统关联程序打印本地文件 |
获取打印机列表 () | 文本数组类 | 系统打印机名称列表 |
智能转码 (数据, 目标编码, 缓冲区大小) | 字节集类 | 自动检测编码并转换(UTF-8 / GBK / Big5 / Shift_JIS / EUC-KR / windows-1252) |
取网络时间戳 (NTP服务器) | 长整数 | NTP UTC 毫秒时间戳,不依赖本机时钟;留空按内置服务器列表尝试,失败返回 -1 |
清空数据目录 (确认令牌) | 逻辑型 | 按确认令牌清空数据目录 |
取文本并释放 (数据指针) | 文本型 | 把底层返回的 UTF-8 指针复制为火山文本并释放(底层交互场景用) |
JSON 处理
模块内置 nlohmann/json 3.12.0 封装,用于解析 IPC payload、构造应答与事件数据。
| 类 | 用途 |
|---|---|
json_object | JSON 对象:创建自文本 / 取文本 / 取整数 / 取小数 / 取逻辑 / 取对象 / 取数组(键名或 /a/b JSON Pointer);置文本 / 置整数 … 写入;成员是否存在 / 删除成员 / 到文本 |
json_array | JSON 数组:按索引读写、追加文本 / 追加整数 …、枚举循环 + 取枚举值 / 取枚举对象 / 取枚举数组 |
json_value | 任意 JSON 值:到文本 / 到整数 / 到小数 / 到逻辑 / 取类型(类型码见 json_type 常量类) |
json_basic | 以上类的基类:创建自文本 / 到文本 / 到可读文本 / 取最后错误 / 取指针值(JSON Pointer) |
变量 数据解构 <类型 = json_object>
如果真 (数据解构.创建自文本 (数据))
{
变量 名字 <类型 = 文本型>
名字 = 数据解构.取文本 ("user.name", "") // 也支持 "/user/name" JSON Pointer
变量 应答 <类型 = json_object>
应答.置逻辑 ("success", 真)
应答.置文本 ("echo", 名字)
返回 (应答.到文本 ())
}常量类总览
固定取值的参数都有常量类,不必裸写字符串 / 数字:
| 常量类 | 取值 | 用途 |
|---|---|---|
窗口主题 | .浅色 / .深色 / .跟随系统 | 窗口主题 |
窗口边框样式 | .普通窗口 / .无标题栏 / .无边框 / .标题覆盖 | 边框样式(标题覆盖 = Windows 专属,带内置控制按钮) |
窗口材质 | .云母 / .云母亚色 / .亚克力 / .无 | Win11 DWM 材质 |
窗口层级 | .置顶 / .普通 / .置底 / .贴桌面 | 窗口层级 |
提示框类型 | .无图标 / .信息 / .警告 / .错误 / .询问 | 消息框图标 |
进度条状态类型 | .无进度 / .正常 / .暂停 / .错误 / .不确定 | 任务栏进度状态 |
托盘菜单项类型 | .普通项 / .子菜单 / .分隔线 / .分组 | 托盘菜单 |
托盘事件类型 | .鼠标进入 / .鼠标离开 / .左键点击 / .右键点击 / .双击左键 | 托盘交互事件 的事件类型 |
托盘菜单项类型文本 | .普通项 / .子菜单 / .分隔线 / .分组 | 托盘菜单命令事件 的项目类型 |
菜单类型 | .命令 / .复选框 / .单选 / .分隔线 / .子菜单 / .默认菜单项 | 右键菜单项类型 |
原生菜单项 | .后退 / .前进 / .刷新 / .复制 / .粘贴 / .全选 / .检查元素 … | WebView2 原生菜单项名称(配合 菜单类型.默认菜单项) |
右键菜单场景 | .页面 / .选中文本 / .图片 / .视频 / .音频 | 菜单事件回调 的菜单场景 |
热键功能键 | .Alt / .Control / .Shift / .Win | 全局热键修饰键(可 位或 组合) |
路径常量 | .用户主目录 / .应用数据目录 / .临时目录 / .系统桌面 / .下载目录 / .应用日志目录 … | 取定义路径 |
对话框属性 | .允许选择文件 / .允许选择文件夹 / .允许多选 / .显示隐藏文件 … | 文件对话框属性 |
文件拖放事件类型 | .进入 / .移动 / .放下 / .离开 | 文件拖放 事件数据的 type |
崩溃代码类型 | .访问冲突 / .栈溢出 / .运行时崩溃 / .渲染进程退出 … | 程序崩溃回调 的崩溃代码 |
json_type | .空 / .对象 / .数组 / .文本 / .整数值 / .小数值 / .逻辑 … | JSON 值类型码 |
订阅_窗口事件 / 订阅_视图事件 / 订阅_通知事件 / 订阅_系统事件 | 事件名文本常量 | 订阅事件 / 注销订阅事件 |