介绍

火山视窗 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.YAMLJade.托盘Jade.菜单Jade.应用包 按能力分类,即取即用
  • 窗口管理:标准 / 无边框窗口,大小、位置、全屏、置顶、层级(含贴桌面壁纸层)、任务栏进度与闪烁、Mica / Acrylic 材质、内容保护、鼠标穿透
  • IPC 通信:事件订阅(订阅事件)、IPC 通道对象方法回调(置IPC频道回调 + 注册IPC通道)、主动推送(发送IPC消息
  • 对话框:打开 / 保存文件对话框、消息框、错误框、关于对话框,同步与异步(对象方法回调)两套 API
  • 系统托盘与菜单:托盘图标 + 键名分派的扁平菜单表(子菜单 / 分隔线 / 禁用项 / 风险项)、WebView 右键菜单接管(原生项与自定义项混排)
  • JAPK 资源包:前端资源加密 / 混淆打包,支持从字节集或视窗文件资源直接加载(磁盘零前端文件)
  • 系统工具:剪贴板、预定义路径、显示器信息、全局热键、开机自启、URL 协议、文件关联、打印、智能转码、文件图标提取、NTP 网络时间
  • YAML 配置存储:键路径读写的持久化配置(防路径穿越、原子写入、文件锁),支持自动扩容读取
  • 内置 JSONjson_object / json_array / json_value(nlohmann/json 3.12.0 封装),解析 IPC payload、构造应答一步到位

适用场景

  • 用火山视窗开发现代 UI 的 Windows 桌面应用(前端 HTML/CSS/JS,后端火山)
  • 需要单文件分发的工具类应用(静态链接,单 exe)
  • 需要前端资源加密分发(JAPK)的商业应用
  • 给现有火山项目补一个 WebView 界面层

技术架构

Markdown
┌────────────────────────────────────────────────┐
│              火山视窗层(JadeView.wsv)           │
│  JadeView / 窗口 / 系统 / YAML / 托盘 / 菜单 / 应用包 │
└───────────────────────┬────────────────────────┘
                        │ 嵌入 C++(自动 UTF-16 ⇄ UTF-8)
┌───────────────────────┴────────────────────────┐
│        C++ 桥接层(Vol_JadeEventBridge)          │
│     事件分发 / IPC 槽位 / 对话框异步回调 / JSON      │
└───────────────────────┬────────────────────────┘
                        │ 静态链接
┌───────────────────────┴────────────────────────┐
│            JadeView.lib(静态库)                │
└───────────────────────┬────────────────────────┘

┌───────────────────────┴────────────────────────┐
│                 WebView2 渲染                    │
│        HTML / CSS / JavaScript(前端 UI)         │
└────────────────────────────────────────────────┘

系统要求

平台架构开发依赖运行时依赖
Windows 10 / 11x86 / x64火山软件开发平台(火山视窗)WebView2 Runtime(Win11 自带)

安装方式

  1. 下载模块安装包,安装到火山模块目录
  2. 在项目中引用 JadeView 模块火山.JadeView
  3. 声明 JadeView 基类变量:变量 Jade <类型 = JadeView>
  4. 点击变量旁的闪电图标即可快速声明所需的事件回调方法(JadeView_应用就绪 等)

快速示例

Plaintext
<火山程序 类型 = "通常" 版本 = 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)
    }
}

项目信息