上节继续,本文将研究splashscreen,也就是程序的启动界面,通常有2二种应用场景:

1、程序太复杂,主界面完成加载需要很长时间,为了优化用户体验,可以先放一个启动图片,缓解用户等待的焦虑。

2、播放启动广告,手机应用上很常见,进入主程序前,强制让用户看一会儿广告。

在tauri中也有二种实现方式:

一、前端与Rust配合

1.1 先调整tauri.config.json

要点在于:将主窗口home隐藏,然后将splashscreen窗口显示,为了简单,这里只显示1个小图片,该图片可放在react的public目录下

这样启动时,就只会显示splashscreen窗口,然后在main.rs中暴露1个方法:

1.2 前端监听DOMContentLoaded事件

前文讲过,如何在js中获取tauri window的引用,这里就用上了,大致思路是主界面的dom加载完成后,调用api把spashscreen关掉,然后显示出主窗口

运行效果:

二、纯Rust代码实现

use tauri::Manager;

fn main() {
tauri::Builder::default()
.setup(|app| {
let splashscreen_window = app.get_window("splashscreen").unwrap();
let main_window = app.get_window("home").unwrap();
// we perform the initialization code on a new task so the app doesn't freeze
tauri::async_runtime::spawn(async move {
// initialize your app here instead of sleeping :)
println!("Initializing...");
//等待5秒后,再显示主窗口
std::thread::sleep(std::time::Duration::from_secs(5));
println!("Done initializing."); // After it's done, close the splashscreen and display the main window
splashscreen_window.close().unwrap();
main_window.show().unwrap();
});
Ok(())
})
.run(tauri::generate_context!())
.expect("failed to run app");
}

效果差不多,只是splashscreen窗口停留多久,一般是根据主窗口加载时间预估,稍稍有那么一点点不精确。

参考文章:

https://tauri.app/v1/guides/features/splashscreen

tauri学习(5)-Splashscreen启动界面的更多相关文章

  1. 开源中国安卓client源代码学习(一) 渐变启动界面

    开源中国安卓client源代码学习(一) 渐变启动界面 准备学习安卓开发, 看到网上有人推荐开源中国安卓client的源代码, 说里面包括了大部分技术, 于是准备好好研究研究. 特开通此系列博客来记录 ...

  2. 写启动界面Splash的正确姿势,解决启动白屏(转)

    原文链接:http://www.jianshu.com/p/cd6ef8d3d74d 从我学习写第一个android项目以来,我都是这样写着启动界面: 在里面做一些事,比如:第一次启动时拷贝数据. 然 ...

  3. Android应用--新浪微博客户端新特性滚动视图和启动界面实现

    新浪微博客户端新特性滚动视图和启动界面实现 2013年8月20日新浪微博客户端开发之启动界面实现 前言: 使用过新浪微博客户端的童鞋都清楚,客户端每一次升级之后第一次启动界面就会有新特性的介绍,用户通 ...

  4. WinForm界面开发之 启动界面

    我们在开发桌面应用程序的时候,由于程序启动比较慢,往往为了提高用户的体验,增加一个闪屏,也就是SplashScreen,好处有:1.让用户看到加载的过程,提高程序的交互响应:2.可以简短展示或者介绍程 ...

  5. Xcode加入应用图标以及启动界面

    寻找了许久的资料,记录下Xcode加入应用图标以及启动界面的学习笔记: 很实用的网址: 1.(苹果官网)Designing for iOS 2.iOS 8 人机交互指南 图标和图片的尺寸參考: 更加具 ...

  6. Android 设置启动界面

    启动界面的意义是为了让后台处理耗时的复杂工作,当工作处理完成后,即可进入主界面.相比让用户等待布局加载完成,使用一张图片作为启动背景,会带来更好的体验. 首先,需要建立一个简单的布局: <?xm ...

  7. 【No.5 Ionic】修改 应用名,icon,启动界面

    修改 应用名 直接 修改 config.xml中的name 修改icon 和 启动界面 在resources目录有个 icon.png  和 splash.png 文件,直接把文件覆盖执行重新生成命令 ...

  8. iOS-APP中添加启动界面

    iOS,非常高兴的又回到了这个领域.纠结的就业之路...找工作的这段时间里,原本以为是iOS的游戏开发,却一直只有后台的offer,到Android,最后正式上班的时候却被告知调到了iOS开发,当然不 ...

  9. Qt带进度条的启动界面(继承QSplashScreen,然后使用定时器)

    通过继承QSplashScreen类,得到CMySplashScreen类,然后在CMySplashScreen中定义QProgressBar变量,该变量以CMySplashScreen为父类,这样就 ...

  10. Android开发(25)--framebyframe帧动画并实现启动界面到主界面的跳转

    Drawable animation可以加载Drawable资源实现帧动画.AnimationDrawable是实现Drawable animations的基本类.推荐用XML文件的方法实现Drawa ...

随机推荐

  1. Linux 给用户 赋某个文件夹操作的权限(实现三权分立)

    Linux 给用户 赋某个文件夹操作的权限 这里用的ubuntu16.04 一.配置网站管理员 linux文件或目录的权限分为,读.写.可执行三种权限.文件访问的用户类别分为,文件创建者.与文件创建者 ...

  2. SpringMVC的注解

    @RequestMapping 指定请求的路径 value :用于指定请求的url.它和path属性的作用是一样的. path :路径 method :请求的方法.RequestMethod.GET, ...

  3. 一文掌握 Ubuntu 全场景扩容操作

    此文章为搬运,原作者链接 一文掌握 Ubuntu 全场景扩容操作 - 南北东西万里程的文章 - 知乎https://zhuanlan.zhihu.com/p/707918020 为 ubuntu扩容, ...

  4. js技术之“向数组添加元素”

    一.js中对于数组[]的操作很常见 下面记录一下js向数组添加元素的方法 const array=[1,2,3]; console.log('原数组:',array); 效果图 二.用push在数组后 ...

  5. helm,efk日志系统

    helm:存放配单清单的   chart图表 chart仓库 chart,helm-->Tiller-->api server -->kube_cluster chart---> ...

  6. Number of Atoms——LeetCode进阶路

    原题链接https://leetcode.com/problems/number-of-atoms/ 题目描述 Given a chemical formula (given as a string) ...

  7. Manim动画渲染:从代码到屏幕的幕后故事

    Manim是一个强大的动画制作库,它能够将简单的Python代码转化为精美的动画视频. 你是否好奇过,当你运行Manim代码时,背后的魔法是如何发生的呢? 今天,将重点介绍渲染过程中的三个关键步骤:S ...

  8. 超实用!Dify调用Java的3种实现方式!

    在一些复杂的业务中,我们可能需要使用 Dify 调用外部程序(如 Java 程序),因为这样才能满足业务的特殊需求. 例如,当我们使用 Dify 实现"AI 简历自动筛选器"的时候 ...

  9. Golang的格式化输出

    一.格式化说明符 通用占位符: %v 值的默认格式表示 %+v 类似%v,但输出结构体时会添加字段名 %#v 值的Go语法表示 %T 打印值的类型 %% 输出百分号 布尔型占位符: %t 接收bool ...

  10. 灵活、可用、高扩展,EasyMR 带来全新 Yarn 的队列管理功能及可视化配置

    YARN(Yet Another Resource Negotiator)是 Hadoop 生态系统中的资源调度器,主要用于资源管理和作业调度.YARN 自身具备队列管理功能,通过对 YARN 资源队 ...