该技能用于在 Tauri 2 中创建窗口、处理窗口事件以及管理多窗口布局,重点防止窗口标签冲突和错误用法。
主要能力:整理 tauri.conf.json 中 app.windows[] 的窗口配置项(label、title、url、尺寸、位置、resizable、fullscreen、transparent、decorations、alwaysOnTop 等);列出 Rust 的 WindowEvent 枚举(Resized、Moved、CloseRequested、Destroyed、Focused、ScaleFactorChanged、DragDrop、ThemeChanged);汇总 JS 窗口事件方法(onCloseRequested、onResized、onMoved、onFocusChanged、onThemeChanged、onScaleChanged、onDragDropEvent)与状态方法(innerSize、outerSize、isMaximized、isFullscreen 等);提供显示器查询函数(availableMonitors、currentMonitor、primaryMonitor、cursorPosition)及 LogicalSize、PhysicalSize 等类型说明。
使用方式:给出从 Rust 用 WebviewWindowBuilder 创建窗口、从 JS 用 new Window() 创建窗口、按标签获取窗口引用、Rust 与 JS 中监听窗口事件、多窗口通信(emitTo)以及窗口操作(center、setSize、show、hide、close、destroy)等模式。窗口管理需在 capability 文件中配置 core:window:default 或具体权限。
限制与注意:窗口标签必须全局唯一,重复会导致 Rust 运行时 panic 和 JS 静默失败;能用 close() 时不要用 destroy();取消关闭需调用 api.prevent_close() 或 event.preventDefault();Tauri 2 中应使用 app.get_webview_window("label") 而非 get_window;按标签取窗口需处理 None/null。ThemeChanged 在 Linux 不支持。具体版本行为与完整 API 签名以官方文档为准。