在网上搜说在onBackPress事件中定义跳转方法,但在微信小程序这端没有作用。
解决办法:onUnload事件与onLoad()同级
1.onUnload(e) {
console.log("返回")
//返回首页
uni.switchTab(
{
url:'../../access/index/index'
})
},
2.beforeDestroy() {
uni.reLaunch({
url: '../../access/index/index'
})
},
Bug:安卓端效果直接返回首页,IOS端返回有个过渡页,bug出现的原因是我在A页面跳到B页面时用的是uni.navigateto的页面跳转。
解决方法:
所以我在a页面跳到b页面时用uni.relaunch()进行页面跳转,但是也会触发onUnload页面事件,所以需要有一个变量去控制触发页面卸载事件,在data中定义pageShow为false,b页面跳回时在路径上传参用onLoad接收参数,使其为true,判断是从b页面过来的
A页面
onUnload(e) {
console.log('返回');
//在data中定义pageShow为false,b页面跳回时在路径上传参用onLoad接收参数,使其为true
if(this.pageShow){
uni.switchTab({
url: '../../access/index/index'
})
},
onLoad(data) {
this.pageShow=data.pageShow
},
//跳转页面方法
toSerach() {
//防止多次触发页面卸载事件
this.pageShow = false
uni.reLaunch({
url: '../search/search'
});
},
B页面
用自定义导航栏设置返回上一页的方法,用uni.redirectTo关闭当前页
//返回上一页
back(){
uni.redirectTo({
url:'../latestAdjustment?pageShow=true'
})
},
//选中条件后返回A页面
uni.redirectTo({
url: '../latestAdjustment?collegesCode=' + data.collegesCode + "&pageShow=true"
});
最后,在此感谢部门一位大佬解决此bug