跳到内容
Tauri

启动画面

在本实验中,我们将在 Tauri 应用中实现基本的启动画面功能。这相当简单,启动画面实际上就是创建一个新窗口,在你的应用执行一些繁重的设置相关任务期间显示一些内容,然后在设置完成后关闭它。

  1. 在开始开发任何项目之前,重要的是构建并运行初始模板,以验证您的设置是否按预期工作。

  2. 添加新窗口最简单的方法是直接将它们添加到 tauri.conf.json 中。你也可以在启动时动态创建它们,但为了简单起见,我们还是选择注册它们。确保你有一个标签为 main 的窗口被创建为隐藏窗口,以及一个标签为 splashscreen 的窗口被创建为直接显示。你可以将所有其他选项保留为默认值,或者根据偏好进行调整。

  3. 在开始之前,你需要有一些要显示的内容。如何开发新页面取决于你选择的框架,大多数都具有“路由器”的概念,它处理页面导航,这在 Tauri 中应该像正常一样工作,在这种情况下,你只需创建一个新的启动画面页面。或者,像我们在这里将要做的,创建一个新的 splashscreen.html 文件来托管内容。

    重要的是,你可以导航到 /splashscreen URL 并显示你想要作为启动画面的内容。完成此步骤后,尝试再次运行应用程序!

  4. 由于启动画面通常用于隐藏繁重的设置相关任务,因此我们假装给应用程序一些繁重的任务,一部分在前端,一部分在后端。

    为了假装前端的繁重设置,我们将使用一个简单的 setTimeout 函数。

    在后端模拟繁重操作最简单的方法是使用 Tokio crate,这是 Tauri 在后端用于提供异步运行时的 Rust crate。虽然 Tauri 提供了运行时,但 Tauri 不会重新导出其中的各种实用程序,因此我们需要将 crate 添加到我们的项目中才能访问它们。这在 Rust 生态系统中是完全正常的做法。

    不要在异步函数中使用 std::thread::sleep,它们在并发环境中协同运行,而不是并行运行,这意味着如果你休眠线程而不是 Tokio 任务,你将阻止在该线程上计划运行的所有任务被执行,导致你的应用程序冻结。

  5. 现在你应该会看到一个启动画面窗口弹出,前端和后端都将执行各自繁重的 3 秒设置任务,之后启动画面消失,主窗口显示!

一般来说,拥有一个启动画面就意味着承认你的应用加载速度不够快,以至于不需要它。事实上,最好是直接进入主窗口,然后在角落显示一个小小的旋转图标,告知用户后台仍在进行设置任务。

然而,话虽如此,拥有启动画面可能是一种风格选择,或者你可能有某些非常特殊的要求,使得在执行某些任务之前无法启动应用程序。拥有启动画面绝不是错误的,它只是通常不是必需的,并且可能会让用户觉得应用程序没有很好地优化。


© 2025 Tauri 贡献者。CC-BY / MIT