适用于不同 Windows 和平台的功能
本指南将帮助你自定义 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}],},...}在 Rust 代码中创建 Tauri 应用程序:
tauri::Builder::default().invoke_handler(tauri::generate_handler![greet]).setup(|app| {let webview_url = tauri::WebviewUrl::App("index.html".into());// 第一个窗口tauri::WebviewWindowBuilder::new(app, "first", webview_url.clone()).title("First").build()?;// 第二个窗口tauri::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
窗口读取$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
窗口提供创建“是/否”的对话框的功能。在功能文件中使用具有一个或多个窗口标签的
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 应用中创建多个窗口并赋予它们特定功能。此外,这些功能还可以针对特定平台进行定制。
在 Tauri Github 仓库 的
api
示例
中可以找到一个使用窗口功能的示例程序。
功能文件中可以使用的字段在 功能 参考中列出。
© 2025 Tauri Contributors. CC-BY / MIT