uniapp微信小程序原生导航栏返回事件自定义跳转特定页面

在网上搜说在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

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值