不同窗口和平台的功能
本指南将帮助您自定义 Tauri 应用的能力。
本指南内容
- 在 Tauri 应用中创建多个窗口
- 为不同的窗口使用不同的能力
- 使用与平台相关的特定能力
先决条件
此练习应在完成 使用插件权限
后阅读。
指南
-
在这里,我们创建了一个应用,有两个带有标签
first
和second
的窗口。在您的 Tauri 应用程序中创建窗口有多种方法。在 Tauri 配置文件中,通常命名为
tauri.conf.json
"productName": "multiwindow",..."app": {"windows": [{"label": "first","title": "First","width": 800,"height": 600},{"label": "second","title": "Second","width": 800,"height": 600}],},...}通过程序创建窗口
在创建 Tauri 应用的 Rust 代码中
tauri::Builder::default().invoke_handler(tauri::generate_handler![greet]).setup(|app| {let webview_url = tauri::WebviewUrl::App("index.html".into());// First windowtauri::WebviewWindowBuilder::new(app, "first", webview_url.clone()).title("First").build()?;// Second windowtauri::WebviewWindowBuilder::new(app, "second", webview_url).title("Second").build()?;Ok(())}).run(context).expect("error while running tauri application"); -
Tauri 应用程序的窗口可以使用 Tauri 后端的不同功能或插件。为了更好的安全性,建议只为每个窗口提供必要的能力。我们模拟了一个场景,其中
first
窗口使用文件系统和对话框功能,而second
窗口只需要对话框功能。建议根据它们启用操作的类别来分离能力文件。
在
src-tauri/capabilities
中的 JSON 文件将被考虑用于能力系统。在这里,我们将与文件系统和对话框窗口相关的功能分离到filesystem.json
和dialog.json
。Tauri 项目的文件树
/src/src-tauri/capabilitiesfilesystem.jsondialog.jsontauri.conf.jsonpackage.jsonREADME.md将文件系统能力赋予
first
窗口我们赋予
first
窗口读取$HOME
目录内容的权限。在能力文件中使用
windows
字段,带有一个或多个窗口标签。filesystem.json {"identifier": "fs-read-home","description": "Allow access file access to home directory","local": true,"windows": ["first"],"permissions": ["fs:allow-home-read",]}将对话框能力赋予
first
和second
窗口我们赋予
first
和second
窗口创建“是/否”对话框的能力在能力文件中使用
windows
字段,带有一个或多个窗口标签。dialog.json {"identifier": "dialog","description": "Allow to open a dialog","local": true,"windows": ["first", "second"],"permissions": ["dialog:allow-ask"]} -
现在我们想定制能力,使其仅在特定平台上有活动。我们使我们的文件系统能力只在
linux
和windows
上活动。在能力文件中使用
platforms
字段来实现平台特定。filesystem.json {"identifier": "fs-read-home","description": "Allow access file access to home directory","local": true,"windows": ["first"],"permissions": ["fs:allow-home-read",],"platforms": ["linux", "windows"]}当前可用的平台有
linux
、windows
、macos
、android
和ios
。
结论与资源
我们已经学会了如何在Tauri应用中创建多个窗口并赋予它们特定的功能。此外,这些功能还可以针对特定的平台进行配置。
一个使用窗口功能的示例应用可以在api
示例中找到,该示例位于Tauri Github仓库。可以作为功能文件使用的字段可以在功能参考中找到。
© 2025 Tauri 贡献者。CC-BY / MIT