You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 13:25:31