跳到内容
Tauri

启动画面

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

先决条件

步骤

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

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

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

    重要的是,您可以导航到 /splashscreen URL,并显示您想要的启动画面内容。在这步之后尝试再次运行应用程序!

  4. 由于启动画面通常是为了隐藏与设置相关的重任务,因此让我们假装给应用程序一项重任务来执行,一些在前端,一些在后台。

    要模拟前端中的重设置,我们将使用一个简单的 setTimeout 函数。

    在后台模拟重操作最容易的方法是使用Tokio库,这是Tauri在后台用于提供异步运行的Rust库。尽管Tauri提供了运行时,但Tauri并未从其中重新导出各种实用工具,因此我们需要将其添加到我们的项目中以便访问它们。这在Rust生态系统中是一种非常正常的做法。

    不要在异步函数中使用std::thread::sleep,它们在一个并发环境中是协作运行的,而不是并行的,这意味着如果你让线程休眠而不是Tokio任务,则会导致所有计划在该线程上运行的任务无法执行,从而导致你的应用程序冻结。

  5. 运行应用程序

    现在你应该能看到一个启动窗口弹出,前端和后端都将执行它们各自的3秒重设置任务,然后启动窗口消失,主窗口将被显示出来!

讨论

你是否需要一个启动画面?

总的来说,拥有一个启动窗口似乎是你无法让应用程序加载足够快,以至于不需要它的一个迹象。事实上,直接进入主窗口并在角落显示一个小的旋转器,告知用户后台仍在执行设置任务,可能更好。

但是,话虽如此,这可能是你想要的一个风格选择,或者你可能有一些非常具体的需求,这使得应用程序在完成某些任务之前无法启动。拥有启动窗口绝对是正确的,但它通常并不是必要的,可能会让用户感觉应用程序的优化不是很出色。


© 2025 Tauri contributors. CC-BY / MIT