WebView 插件
当内置 DOM API 不够用时,可用 WebView(基于 Electron 的 <webview> 标签)承载完整的网页/前端框架,构建富界面插件。
核心要点
理解 WebView
- WebView 是独立渲染进程,可加载本地 HTML 或远程页面,适合复杂仪表盘、图表、第三方 UI
- 与宿主通信通过
postMessage桥接:
ts
webview.addEventListener("ipc-message", (e) => {
console.log(e.channel, e.args);
});
webview.send("to-web", { data: 1 });典型场景
- 用 React / Vue 构建的设置面板或统计页
- 嵌入需要独立 JS 运行时的可视化库(如 D3、ECharts)
- 展示远程内容(需谨慎处理 CSP 与安全)
注意事项
- WebView 仅桌面端可用,移动端需降级方案(
isDesktopOnly: true) - 远程内容有安全风险,建议加载本地打包资源并校验来源
- 与 编辑器扩展 相比,WebView 更重但更灵活