Skip to content

JadeView v2.2.0 (Build 26F06)

Choose a tag to compare

@tuyangJs tuyangJs released this 04 Jun 16:06
· 12 commits to main since this release

彻底完善了 v2 的能力
这次更新,我们终于把那些你一直想要、却一直没给的东西做出来了:右键菜单完全由你掌控本地文件安全暴露(以前根本做不到)开发时热载自动刷新性能飞跃,还一口气加了 32 个全新 C API

v2.2 不是一个小版本,它值得一次大版本号跃升。


  • 监听 context-menu 事件,获取完整上下文(坐标、目标类型、链接/选中文本、默认菜单项列表)
  • jade_menu_item_* API 自由创建命令、分隔线、复选框、单选、子菜单,或直接复用 WebView2 原生项(kind=5,如 copy/paste/saveImageAs
  • 动态控制启用/勾选,用户点击后返回自定义 item_id
    👉 文档
  • register_resource:传入本地文件路径,生成 token 化 URL(/---jade---resource--?token=xxx

  • 前端只能看到 token,真实路径永不泄露

  • 支持 Range 请求(视频拖动秒切)、自动 MIME、窗口关闭自动清理、最多 4096 条注册
    👉 文档

  • set_protocol_service_path 新增 hot_reload 参数,开发时启用后监听资源目录变更,自动清除缓存并刷新页面

  • 内置 150ms 防抖,不再需要手动刷新
    👉 文档

场景 优化 效果
窗口创建 / IPC 常驻线程替代 thread::spawn 窗口创建快 1.5–4ms
SPA 静态资源缓存 淘汰全清 → 保留最近 1024 条 淘汰后首次加载 10–100ms → 1–5ms
页面导航 移除冗余日志 每次节省 5–20μs
启动速度 综合优化 +10%~20%
IPC/事件系统 调度优化 +5~30%

分类 API
窗口状态查询 get_window_bounds, is_window_minimized, is_window_visible, is_window_focused, is_window_fullscreen文档
窗口约束 set_window_min_size, set_window_max_size, set_window_resizable文档
DevTools 控制 open_devtools, close_devtools, is_devtools_open文档
鼠标穿透 set_window_ignore_cursor_events文档
任务栏特效 set_window_progress, flash_window文档
系统集成 鼠标位置、剪贴板读写、打印机列表 → 文档
对话框增强 jade_print_dialog, show_about_dialog文档
浏览数据清除 clear_browsing_data文档
窗口位置尺寸 获取 JSON 格式位置和尺寸 → 文档
托盘图标增强 set_tray_icon_from_data(二进制数据) → 文档
退出应用 jadeview_exit 替代 cleanup_all_windows文档
导航扩展 navigate_to_url 支持自定义请求头 → 文档
智能编码转换 smart_convert_encoding文档

事件 说明 文档
drag-drop 替代 file-drop,覆盖 enter/over/drop/leave 完整拖拽生命周期
crash 崩溃时返回错误代码(不泄露源码)
app-ready 统一格式:成功 window_id=1, data="success";失败 window_id=0, data=错误描述
webview-download-completed 下载完成时触发
devtools-open-state DevTools 打开/关闭时触发
context-menu 增强 新增 default_menu_names 字段(默认菜单项列表)

函数签名

// hot_reload: 是否启用热载模式 (0=禁用, 1=启用),仅文件系统模式有效
int32_t JADEVIEW_CALL set_protocol_service_path(const char* root_path, char* url_buffer, size_t buffer_size, int32_t hot_reload);
  • 3 个参数 升级为 4 个参数
  • 旧代码调用必须补充 hot_reload=0 保持兼容
  • 仅文件系统模式生效,启用后自动监听文件变更并刷新页面
    👉 文档

navigate_to_url 新增 headers_json 参数(向后兼容)
👉 文档

  • 新增 jadeview_exit()废弃 cleanup_all_windows()文档
  • 新增 smart_convert_encoding() 智能转码 API → 文档

  • autofill – 账号密码自动填充(Windows WebView2 1.0.902+)
  • general_autofill_enabled – 通用表单自动填充
  • incognito – 无痕模式(不保存 cookie/缓存)
  • disable_clipboard – 禁用剪贴板(Windows/Linux)
  • proxy_url – HTTP CONNECT 或 SOCKS5 代理
  • focused – 初始是否获取焦点(Windows/Linux)
    👉 平台支持详情

  1. JAPK 加载异常:超过最大输出长度时返回错误而非崩溃,通过加载失败事件通知。
  2. 路径获取锁不一致:一次加锁同时读取数据目录和执行路径,保证原子性。
  3. 最大化窗口顶部裁切:修复无边框窗口最大化后内容被裁切 8px 的问题。
  4. 启动窗口时偶发慢速:优化窗口创建时的渲染速度。

v2.2 是一次高含金量的大版本,强烈建议所有开发者适配升级。