1.問題
在使用uni-app開發(fā)app 打包完成后 用戶沒登錄首次進(jìn)入跳轉(zhuǎn)登錄頁 登錄跳轉(zhuǎn)至首頁建芙!
平常解決方法是onLaunch生命周期里面判斷用戶是否登錄 但是有一個(gè)不好的體驗(yàn)就是每次進(jìn)入程序先進(jìn)入設(shè)定的第一個(gè)頁面 在進(jìn)入首頁 這樣體驗(yàn)不是很好~
2.解決
uni-app文檔地址:https://uniapp.dcloud.io/collocation/manifest?id=splashscreen
H5+文檔地址:http://www.html5plus.org/doc/zh_cn/navigator.html#plus.navigator.closeSplashscreen
使用plus.navigator.closeSplashscreen()
首先manifest.json app-plus 默認(rèn)這兩值是true 設(shè)置改為false 需要時(shí)在關(guān)閉
manifest.json 源碼配置
"app-plus" : {
"splashscreen" : {
"alwaysShowBeforeRender" : false,
"waiting" : true,
"autoclose" : false,
"delay" : 0
}
}
App.vue 文件 onLaunch 生命周期里面寫法 (根據(jù)自己需求情況判斷)這里是用到token判斷存在跳轉(zhuǎn)至首頁 不存在跳轉(zhuǎn)登錄頁
onLaunch: function() {
console.log('App Launch');
// #ifdef APP-PLUS
// token標(biāo)志來判斷
let token= uni.getStorageSync('token');
if (token) {
//存在則關(guān)閉啟動(dòng)頁進(jìn)入首頁
plus.navigator.closeSplashscreen();
} else {
//不存在則跳轉(zhuǎn)至登錄頁
uni.reLaunch({
url: "/pages/login/login",
success: () => {
plus.navigator.closeSplashscreen();
}
})
}
// #endif
}