JadeView 类
概述
JadeView 是易语言 SDK 全局唯一入口单例,导入JadeView.ec后自动生成,无需手动定义。统一封装内核初始化、窗口视图、事件系统、IPC 双向通讯、弹窗通知、系统底层能力,所有功能均通过JadeView.子模块.子程序()调用。
推荐标准执行顺序
- 注册应用就绪事件:
JadeView.App.注册事件(#事件_应用准备就绪, &回调子程序),必须在初始化之前执行 - 初始化内核:调用
JadeView.App.初始化加载 jadeview_x86.dll进行初始化 - 运行消息循环:调用
JadeView.App.消息循环运行消息循环 - 创建 WebView 窗口:在 #事件_应用准备就绪 回调子程序 内调用
JadeView.窗口.创建创建窗口。重要:窗口必须在#事件_应用准备就绪事件触发后才能创建。 - 注册其他事件:通过
JadeView.App.注册事件注册其他事件回调 - 清理资源:监听
#事件_全部窗口已关闭事件,调用JadeView.App.退出释放全部资源
一、内核初始化与消息循环(JadeView.App)
1. 初始化
- 作用:加载
jadeview_x86.dll运行时,自动订阅大部分通用内置事件 - 自动订阅事件清单:应用就绪、多实例启动、窗口创建 / 销毁、页面加载状态、页面标题图标更新、前端 IPC 消息、全局热键、系统通知事件
- 参数:日志开关、日志路径、程序标识、程序名称、单实例标记等中文文本需转 UTF8
- 返回:逻辑型,真 = 内核加载成功,假 = DLL 缺失 / 版本不兼容
2. 消息循环
- 作用:持续监听、分发全部异步事件(窗口、IPC、热键、弹窗、托盘通知)
- 执行位置:内核初始化成功后主线程末尾,循环结束代表程序准备退出
二、窗口与视图能力(JadeView. 窗口 + JadeView. 页面)
完整 Web 窗口生命周期、页面渲染控制,支持标准 / 无边框 / 标题覆盖层多种窗口形态
窗口功能
- 创建窗口:搭配
JadeView窗口设置结构体配置大小、标题、Mica 亚克力材质、边框样式、置顶、最小最大限制、防截图保护、任务栏进度 - 运行时控制:动态切换明暗主题、修改窗口层级(置顶 / 置底 / 桌面挂件)、显示 / 隐藏、最小化最大化、修改坐标尺寸
- 材质配置:支持 mica/micaAlt/acrylic 三种 Win11 透明材质
页面视图功能
- 页面导航、强制刷新(可忽略缓存)
- 执行前端 JS 代码,获取 JS 返回结果
- 页面缩放、自动播放媒体开关、无痕缓存控制
三、事件系统(JadeView.App. 注册事件)
1. 自动订阅事件(初始化自动绑定,无需手动注册)
内核初始化时自动监听,仅需编写对应回调子程序:
- #事件_应用准备就绪
- #事件_第二个实例启动
- #事件_窗口创建完成 / #事件_窗口已关闭 / #事件_窗口状态变化
- #事件_WebView 开始加载 / #事件_WebView 加载完成
- #事件_WebView 页面图标更新 / #事件_WebView 页面标题更新
- #事件_收到前端 PostMessage(IPC 通用消息)
- #事件_全局热键触发
- #事件_通知已显示 / #事件_通知操作被点击 / #事件_通知已关闭
2. 必须手动注册事件(需显式调用注册事件)
不自动订阅,开发需要时手动绑定:
- #事件_窗口即将关闭
- #事件_拖拽操作(文件拖入窗口)
- #事件_WebView 页面请求打开新窗口
- #事件_WebView 下载完成
3. 可拦截事件(回调返回文本控制放行 / 拦截)
规则:回调返回空文本 = 放行默认行为;返回非空 UTF8 字符串 = 拦截原生逻辑
- #事件_窗口即将关闭:拦截可阻止窗口关闭
- #事件_拖拽操作:拦截禁止文件拖入
- #事件_WebView 页面请求打开新窗口:拦截禁止弹出新页面
- #事件_WebView 下载完成:拦截取消文件下载
四、IPC 前后端双向通讯(JadeView. 通讯)
易语言 ↔ 网页 JS 数据交互专用通道,推荐专用订阅方式,不建议通用事件处理
- 订阅通道:
JadeView.通讯.订阅(通道名, &回调),单个回调可接收对应通道全部前端消息 - 广播推送:
JadeView.通讯.广播(窗口ID, 通道名, 消息文本),后端主动发数据到页面 - 前端调用规范:页面仅可用
jade.invoke(通道名, 数据)发送,jade.on(通道名, 回调)接收,无 jade.send 接口
五、对话框工具(JadeView. 对话框)
分为同步弹窗、异步弹窗两类,均配套专用结构体传参
同步对话框(阻塞等待用户操作)
- 文件打开对话框
- 文件保存对话框
- 普通信息消息框
- 错误提示消息框
异步对话框(非阻塞,通过事件回调接收结果)
- 异步打开文件
- 异步保存文件
- 异步消息弹窗
配套结构体
提示框选项、文件对话框选项,可配置标题、按钮、筛选器、多选、隐藏文件等特性
六、系统通知(JadeView. 通知)
Windows 系统桌面气泡通知,支持自定义标题、正文、图标、双操作按钮、超时时间
- 子程序:
JadeView.通知.弹出通知(通知配置结构体) - 配套事件:通知点击、通知关闭、通知弹出失败可监听回调
七、托盘菜单(JadeView. 托盘)
程序后台常驻右下角托盘能力
- 创建托盘图标、设置悬浮提示文字
- 新增托盘菜单项:普通按钮、子菜单、分隔线、逻辑分组
- 清空全部托盘菜单
- 配套事件:托盘左键 / 右键点击、菜单命令点击
八、系统底层通用能力(JadeView. 系统)
1. 协议管理
- 注册 / 注销自定义 URL 协议(xxx:// 唤起程序)
- jade:// 本地静态资源服务创建,支持热重载
2. 全局热键
注册 / 注销全局快捷键,支持 Ctrl/Shift/Alt/Win 组合修饰键
3. 系统路径获取
通过#Path_xxx常量一键获取桌面、文档、缓存、程序目录等系统路径
4. 系统版本判断
JadeView.系统.是否为Win11() 判断是否支持 Mica 透明材质
5. YAML 配置读写
JadeView.Yaml配置项 实现本地轻量持久化存储,保存软件配置
九、加密资源包能力(JadeView. 协议服务 + JadeView.JAPK)
- 加载 JAPK 签名加密资源包,内存运行不落地,防止前端源码提取
- 获取 JAPK 错误码文本说明,解析加载失败原因
- 卸载已加载资源包,释放内存
十、辅助工具子模块
- JadeView. 文本:GBK↔UTF8 编码转换(所有中文入参必须使用)
- JadeView. 剪切板:读写系统剪贴板文本
- JadeView. 右键菜单:自定义 Web 页面右键菜单,支持复选、单选、原生浏览器选项
- JadeView. 时间:NTP 网络授时、全球多时区时间转换