介绍
火山视窗 SDK(JadeView voldp 模块)是 JadeView 2.x 的火山视窗(火山软件开发平台 PC 版)封装模块,用火山视窗 + HTML/CSS/JS 编写 Windows 桌面应用程序。窗口、事件、双向 IPC、托盘、右键菜单、对话框、通知、YAML 持久化、JAPK 资源包、NTP 授时一应俱全,并内置 nlohmann/json 封装用于解析 IPC 数据。
SDK 的中文方法命名贴合火山习惯(创建窗口、置标题、订阅事件),同时事件名、IPC 通道语义与 JadeView 前端 JS API 保持一致,降低前后端协作成本。
核心特性
- 静态库源码直连:模块以
.wsv+ C++ 桥接层 + 静态库(JadeView.lib)形式集成,编译产物为单个 exe,无需随程序分发 DLL - 多架构:x86(win32)/ x64 双平台,模块内
lib\$(p)\自动按目标平台选库 - 火山原生体验:事件用「接收事件」方法挂接(变量旁点击闪电图标即可快速生成回调),常量用常量类(
窗口主题.深色、窗口边框样式.标题覆盖),不必裸写字符串 - 成员对象分区:
Jade.窗口、Jade.系统、Jade.YAML、Jade.托盘、Jade.菜单、Jade.应用包按能力分类,即取即用 - 窗口管理:标准 / 无边框窗口,大小、位置、全屏、置顶、层级(含贴桌面壁纸层)、任务栏进度与闪烁、Mica / Acrylic 材质、内容保护、鼠标穿透
- IPC 通信:事件订阅(
订阅事件)、IPC 通道对象方法回调(置IPC频道回调+注册IPC通道)、主动推送(发送IPC消息) - 对话框:打开 / 保存文件对话框、消息框、错误框、关于对话框,同步与异步(对象方法回调)两套 API
- 系统托盘与菜单:托盘图标 + 键名分派的扁平菜单表(子菜单 / 分隔线 / 禁用项 / 风险项)、WebView 右键菜单接管(原生项与自定义项混排)
- JAPK 资源包:前端资源加密 / 混淆打包,支持从字节集或视窗文件资源直接加载(磁盘零前端文件)
- 系统工具:剪贴板、预定义路径、显示器信息、全局热键、开机自启、URL 协议、文件关联、打印、智能转码、文件图标提取、NTP 网络时间
- YAML 配置存储:键路径读写的持久化配置(防路径穿越、原子写入、文件锁),支持自动扩容读取
- 内置 JSON:
json_object/json_array/json_value(nlohmann/json 3.12.0 封装),解析 IPC payload、构造应答一步到位
适用场景
- 用火山视窗开发现代 UI 的 Windows 桌面应用(前端 HTML/CSS/JS,后端火山)
- 需要单文件分发的工具类应用(静态链接,单 exe)
- 需要前端资源加密分发(JAPK)的商业应用
- 给现有火山项目补一个 WebView 界面层
技术架构
┌────────────────────────────────────────────────┐
│ 火山视窗层(JadeView.wsv) │
│ JadeView / 窗口 / 系统 / YAML / 托盘 / 菜单 / 应用包 │
└───────────────────────┬────────────────────────┘
│ 嵌入 C++(自动 UTF-16 ⇄ UTF-8)
┌───────────────────────┴────────────────────────┐
│ C++ 桥接层(Vol_JadeEventBridge) │
│ 事件分发 / IPC 槽位 / 对话框异步回调 / JSON │
└───────────────────────┬────────────────────────┘
│ 静态链接
┌───────────────────────┴────────────────────────┐
│ JadeView.lib(静态库) │
└───────────────────────┬────────────────────────┘
│
┌───────────────────────┴────────────────────────┐
│ WebView2 渲染 │
│ HTML / CSS / JavaScript(前端 UI) │
└────────────────────────────────────────────────┘系统要求
| 平台 | 架构 | 开发依赖 | 运行时依赖 |
|---|---|---|---|
| Windows 10 / 11 | x86 / x64 | 火山软件开发平台(火山视窗) | WebView2 Runtime(Win11 自带) |
INFO
当前支持 Windows。文本工程文件(.wsv / .vprj 等)按火山当前版本默认使用 UTF-8 无 BOM 编码。
安装方式
- 下载模块安装包,安装到火山模块目录
- 在项目中引用 JadeView 模块(
火山.JadeView) - 声明 JadeView 基类变量:
变量 Jade <类型 = JadeView> - 点击变量旁的闪电图标即可快速声明所需的事件回调方法(
JadeView_应用就绪等)
快速示例
<火山程序 类型 = "通常" 版本 = 1 />
包 火山.样例
类 启动类 <公开 基础类 = 程序类>
{
变量 Jade <类型 = JadeView>
方法 启动方法 <公开 类型 = 整数>
{
如果 (Jade.初始化 (真, "", "", "Hello JadeView", "com.example.hello", 真) == 假)
{
返回 (0)
}
Jade.运行消息循环 ()
返回 (1)
}
方法 JadeView_应用就绪 <接收事件 类型 = 整数>
参数 来源对象 <类型 = JadeView>
参数 标记值 <类型 = 整数>
参数 窗口ID <类型 = 整数>
参数 数据 <类型 = 文本型>
{
如果 (来源对象 == Jade)
{
Jade.创建窗口 ("https://example.com", 0, , )
}
返回 (0)
}
方法 JadeView_全部窗口已关闭 <接收事件 类型 = 整数>
参数 来源对象 <类型 = JadeView>
参数 标记值 <类型 = 整数>
参数 窗口ID <类型 = 整数>
{
如果 (来源对象 == Jade)
{
Jade.退出程序 ()
}
返回 (0)
}
}项目信息
- 版本:始终建议使用最新发布版,历史变更见仓库 Releases
- GitHub 仓库:前往下载 SDK 源码
- Gitee 仓库:前往下载 SDK 源码