如何在Tauri中为macOS和Windows系统创建Kiosk模式窗口?
在Tauri中实现Kiosk模式的方法
Tauri没有直接对应Electron里kiosk: true的参数,但可以通过组合多个窗口配置和API实现相同的锁定式全屏效果:
核心配置与实现步骤
- 移除边框+强制全屏:在窗口初始化时设置
decorations: false(去掉标题栏和边框),同时开启fullscreen: true(让窗口铺满整个屏幕) - 锁定窗口焦点:监听窗口的焦点丢失事件,一旦检测到窗口失去焦点,立刻重新获取焦点,阻止用户切换到其他应用
- 禁用系统级切换快捷键:针对不同平台做针对性处理,比如Windows上拦截Win键、macOS上禁用Cmd+Tab组合键,这部分需要借助平台原生API或第三方工具实现
示例代码(Tauri v2)
在src-tauri/src/main.rs中配置窗口:
use tauri::{Manager, WindowBuilder, WindowUrl}; fn main() { tauri::Builder::default() .setup(|app| { let window = WindowBuilder::new( app, "main", WindowUrl::App("/".into()) ) .decorations(false) .fullscreen(true) .build()?; // 监听焦点丢失,自动重新获取焦点 window.on_window_event(|event| { if let tauri::WindowEvent::Focused(false) = event { let _ = event.window().set_focus(); } }); Ok(()) }) .run(tauri::generate_context!()) .expect("error while running tauri application"); }
补充说明
- 要实现更彻底的锁定,还可以隐藏系统任务栏(Windows)或Dock栏(macOS),这部分需要调用对应平台的原生API
- 禁用系统快捷键的具体实现需要依赖平台相关的crates,比如Windows用
winapi、macOS用objc
内容的提问来源于stack exchange,提问作者emranio
相关产品推荐
相关产品推荐

