DCloud_UNI_CHB
DCloud_UNI_CHB
  • 发布:2019-01-29 17:04
  • 更新:2023-10-13 16:31
  • 阅读:120239

uni-app 启动界面(splash)参数配置说明 | 启动慢的原因

分类:uni-app

此文档将不再维护,请参考新文档:https://uniapp.dcloud.io/tutorial/app-splashscreen

HBuilderX 1.6.0 版本之后,新增是否等待首页渲染完毕后再关闭启动界面(splash)的配置,App引擎会自动检测首页渲染,若未渲染则不关闭splash,避免显示白屏,提升用户体验。

可在manifest.json文件中进行配置,支持以下三种关闭启动界面(splash)策略:

  • 首页渲染完毕后自动关闭启动界面
  • 首页加载完成后自动关闭启动界面
  • 代码控制关闭启动界面

首页渲染完毕后自动关闭启动界面

打开项目的manifest.json文件,在“App启动界面配置”中的“启动界面选项”下勾选“等待首页渲染完毕后再关闭Splash图”:

源码视图
切换到源码视图界面,在 "app-plus"->"splashscreen" 节点设置 alwaysShowBeforeRender 属性值为 true

    "app-plus" : {  
        "splashscreen" : {  
            "alwaysShowBeforeRender" : true  
        }  
        //...  
    }

提示:

  • App启动时,App引擎自动检测首页渲染情况,若首页未渲染(白屏),则不关闭splash;检测到首页渲染完成则关闭splash;
  • 若启动时间超过10秒,则不管首页是否白屏,都会自动关闭splash

首页加载完成后自动关闭启动界面

打开项目的manifest.json文件,在“App启动界面配置”中的“启动界面选项”下去掉勾选“等待首页渲染完毕后再关闭Splash图”:

源码视图
切换到源码视图界面,在 "app-plus"->"splashscreen" 节点设置 alwaysShowBeforeRender 属性值为 false

    "app-plus" : {  
        "splashscreen" : {  
            "alwaysShowBeforeRender" : false  
        }  
        //...  
    }

提示:
首页加载完成后关闭启动界面,此时首页可能没有完成渲染,在部分设备可能会闪一下白屏(不推荐)

代码控制关闭启动界面

启动界面不会自动关闭,需要开发者在代码中调用plus.navigator.closeSplashscreen()关闭启动界面。
需在“源码视图”中同时设置 alwaysShowBeforeRender 和 autoClose 属性值为 false

源码视图
切换到源码视图界面,在 "app-plus"->"splashscreen" 节点设置如下:

    "app-plus" : {  
        "splashscreen" : {  
            "alwaysShowBeforeRender" : false,  
            "autoclose": false  
        }  
        //...  
    }

提示:
不会自动关闭启动界面,需开发者根据业务逻辑在合适的时机调用 plus.navigator.closeSplashscreen() 关闭启动界面

另,如果uni-app不是v3编译器,请升级为v3,可以大幅提升启动速度:https://ask.dcloud.net.cn/article/36599

5 关注 分享
Trust 银少 5***@qq.com 1***@qq.com 2***@qq.com

要回复文章请先登录注册

3***@qq.com

3***@qq.com

启动图跳转到首页,启动图会有一个拖影,就是闪一下,有人遇到过吗?如何解决
2019-04-15 22:16
我吃柠檬

我吃柠檬

delay根本不能用
2019-03-28 13:44
y***@163.com

y***@163.com

想问一下可不可以设置显示倒计时的?
2019-03-25 10:20
t***@163.com

t***@163.com

是个bug吧,delay 根本不起作用
2019-03-14 00:37
t***@163.com

t***@163.com

延迟根本不管用,什么鬼!
2019-03-10 01:35
7***@qq.com

7***@qq.com

晕,下载了最新的离线打包SDK,问题解决了。。
2019-02-26 20:31
7***@qq.com

7***@qq.com

我在Manifest.js中这样配置的:
"splashscreen" : {
"waiting" : true,
"autoclose" : false,
"delay" : 0,
"alwaysShowBeforeRender" : false
},

然后在App.vue中有这样一段:
onLaunch: function () {
console.log('App Launch')
setTimeout(function(){
plus.navigator.closeSplashscreen();
},6000);
},

在HBuildX调试环境下,启动延时是成功的。但是当我离线打包时,则启动延时无效。
2019-02-26 20:27
银少

银少

回复 DCloud_UNI_CHB :
false
2019-02-21 14:25
DCloud_UNI_CHB

DCloud_UNI_CHB (作者)

回复 银少 :
alwaysShowBeforeRender 你怎么配置的?跟这个参数也有关系
2019-02-21 12:48
银少

银少

话说autoclose:true,设置delay并没有什么用
2019-02-21 12:23