uni-app 手动关闭启动页无效

uni-app 手动关闭启动页无效

开发环境 版本号 项目创建方式
Windows 10 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Windows

PC开发环境操作系统版本号:windows10

HBuilderX类型:正式

HBuilderX版本号:3.2.12

手机系统:Android

手机系统版本号:Android 9.0

手机厂商:小米

手机机型:小米9

页面类型:vue

打包方式:云端

示例代码:

"splashscreen" : {  
    "alwaysShowBeforeRender" : false,  
    "waiting" : true,  
    "autoclose" : false,  
    "delay" : 0  
},

操作步骤:

if(token){  
    console.log(token)  
    uni.reLaunch({  
        url: "/pages/dynamic/index",  
        success: (e) => {  
            plus.navigator.closeSplashscreen();  
        },  
        fail:(e)=>{  
            console.log(e)  
        }  
    })  
}else{  
    plus.navigator.closeSplashscreen();  
}

预期结果:

验证是否登录,若未登录跳转登录页,若登录跳转首页

实际结果:

“autoclose” : false设置后,启动页未到6s就被关闭,很快就跳转页面。

bug描述:

大标题

手动关闭启动页无效


更多关于uni-app 手动关闭启动页无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

未复现此问题。请附一个能复现此bug的完整demo(上传附件)。如果确定确实存在问题,1.我们会安排修复 2.会给你的社区账号加分(分数越高的用户享,有越高的bug审查和建议采纳的优先权重) 【bug优先处理规则】https://ask.dcloud.net.cn/article/38139

更多关于uni-app 手动关闭启动页无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


根据你提供的信息,问题可能出在配置和代码执行顺序上。

首先,autoclose: false 这个配置是正确的,它阻止了启动页在6秒后自动关闭。但启动页的关闭逻辑可能受到其他因素影响。

你代码中的 plus.navigator.closeSplashscreen() 调用时机可能存在问题。在 uni.reLaunchsuccess 回调中关闭启动页,这个回调触发时,页面跳转可能已经开始,此时关闭启动页的效果可能不明显,甚至被页面渲染过程覆盖。

更可靠的做法是在应用逻辑的早期、页面跳转之前关闭启动页。例如,可以在 App.vueonLaunch 生命周期中,根据 token 判断后立即关闭启动页,然后再执行页面跳转。

// App.vue
onLaunch: function() {
    // 假设 token 已从存储中获取
    const token = uni.getStorageSync('token');
    // 先关闭启动页
    plus.navigator.closeSplashscreen();
    // 再执行页面跳转
    if(token) {
        uni.reLaunch({ url: "/pages/dynamic/index" });
    } else {
        uni.reLaunch({ url: "/pages/login/index" });
    }
}
回到顶部