墨香阁
| 分享生活的点滴

Tauri 2.0.0-rc 安装全局快捷方式插件

2024年12月10日 07:42:08
22 views
2 min read
前端
Tauri 2.0.0-rc 安装全局快捷方式插件

Tauri 2.0.0-rc 安装全局快捷方式插件

Tauri 2.0.0-rc 引入了全局快捷方式插件允许你在你的应用中注册全局快捷方式,并在用户按下这些快捷方式时触发 JavaScript 回调。

首先,你需要在你的 Rust 项目中安装全局快捷方式插件。

  1. Cargo.toml 文件中添加依赖。
toml
tauri-plugin-global-shortcut = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" }
  1. lib.rs 文件中初始化插件。
rust
fn run() { tauri::Builder::default() .plugin(tauri_plugin_global_shortcut::Builder::new().build()) .run(tauri::generate_context!()) .expect("error while running tauri application"); }
  1. 安装 JavaScript Guest 绑定。

    pnpm add @tauri-apps/plugin-global-shortcut

  2. 使用 JavaScript API 注册快捷方式。
javascript
import { register } from '@tauri-apps/plugin-global-shortcut' await register('CommandOrControl+Shift+C', (event) => { // event.state === 'Pressed' 键盘按下状态 // event.state === 'Released' 键盘松开状态 console.log('Shortcut triggered') })
  1. 使用 rust 代码注册快捷方式 推荐使用这个

    这样刷新页面的时候,就不用重新注册快捷键了。

rust
fn main() { tauri::Builder::default() .setup(|app| { #[cfg(desktop)] { use tauri::Manager; use tauri_plugin_global_shortcut::{Code, Modifiers, ShortcutState}; app.handle().plugin( tauri_plugin_global_shortcut::Builder::new() .with_shortcuts(["ctrl+d", "alt+space"])? .with_handler(|app, shortcut, event| { if event.state == ShortcutState::Pressed { if shortcut.matches(Modifiers::CONTROL, Code::KeyD) { let _ = app.emit("shortcut-event", "Ctrl+D triggered"); } if shortcut.matches(Modifiers::ALT, Code::Space) { let _ = app.emit("shortcut-event", "Alt+Space triggered"); } } }) .build(), )?; } Ok(()) }) .run(tauri::generate_context!()) .expect("error while running tauri application"); }
  • 在 js 中可以使用 listen 来进行监听快捷键事件
javascript
// 键盘事件 import { listen } from '@tauri-apps/api/event' // 监听 'shortcut-event' 事件 listen('shortcut-event', (event) => { console.log(event.payload) // 打印事件的负载,例如 "Ctrl+D triggered" })

注意事项

默认情况下,所有插件命令都被阻止,无法访问。你必须在 permissions 配置中定义一个权限列表。

json
{ "permissions": ["global-shortcut:allow-is-registered", "global-shortcut:allow-register", "global-shortcut:allow-unregister"] }

还有一个比较重要的注意事项,当你程序页面使用了刷新,这个注册的快捷键失效了,需要先清除缓存,然后重新注册快捷键才行.

  • 参考文献:
    • https://v2.tauri.app/zh-cn/plugin/global-shortcut/
    • https://github.com/tauri-apps/tauri-plugin-global-shortcut

© 2025 . 保留所有权利.

原始文章发表于 2024年12月10日 07:42:08

发表留言

全部留言 (0)

暂无留言,成为第一个留言的人吧!