用途:面向 Tauri 2 开发,处理多 Webview、嵌入网页内容及 Webview 生命周期管理,避免混淆 Window 与 Webview API。
主要能力:提供 Webview 的导入方式(如 import { Webview, getCurrentWebview, getAllWebviews } from '@tauri-apps/api/webview')、方法参考(setZoom、size、position、setSize、setPosition、setAutoResize、show、hide、setFocus、reparent、close、listen、onDragDropEvent 等),并区分 Window(原生窗口容器)、Webview(窗口内的网页渲染器)与 WebviewWindow(窗口加单一 Webview 的便捷组合)。
使用方式:在已有 Window 内创建 Webview,例如 new Webview(parentWindow, 'side-panel', { url, x, y, width, height });多 Webview 布局时分别创建侧栏与主内容;尺寸与定位使用 @tauri-apps/api/dpi 的 LogicalSize 与 LogicalPosition;需要填满父窗口时调用 setAutoResize(true);reparent 接收窗口标签字符串;Rust 侧可用 WebviewBuilder 或 WebviewWindowBuilder。事件监听需在组件卸载时清理。
适用场景:单窗口多面板、嵌入外部网页、拖放文件、缩放控制、跨窗口迁移 Webview 等。
限制与注意:Webview 必须指定父 Window;getCurrentWebview() 与 getCurrentWindow() 不返回同一对象;需在 capability 文件中添加 core:webview 相关权限,否则运行时抛出 command not allowed。具体 API 签名与示例见其 references 目录及官方文档链接。