h5或uniapp或微信小程序,实现左上角返回到指定页面,侧滑左滑返回指定页面,安卓物理返回键返沪指定页面解决思路的思考

h5或uniapp或微信小程序,实现左上角返回到指定页面,侧滑左滑返回指定页面,安卓物理返回键返沪指定页面

uniapp开发app,(非微信小程序)

自定义的左上角返回按钮

html 复制代码
<i class="iconfont icon-zuojiantou" style="font-size: 24px;" @click="goBack()"></i>

方法

javascript 复制代码
goBack(){
			
				let pages = getCurrentPages();
				//函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面
				var num=pages.length
				//当前页面栈总数
				var backnum
				//需要返回的页数
				for(var i =0;i<num;i++){
					//循环找到指定页面路由所在的页数
					if(pages[i].route=='pages/xxx/xxx'){
					console.log(pages[i].route,'pages[i].route')
					//'pages/xxx/xxxx'你需要返回的页面路由
						backnum=num-i-1
						//计算返回的层数,总数-指定页面页数-1
					}		
				}
				console.log(backnum,'backnum')
				uni.navigateBack({
					delta:backnum
						//返回的页面数,如果 delta 大于现有页面数,则返回到首页。
				})
			
		},

安卓物理返回键监听,该方法与生命周期函数同级,也可以尝试放在methods里面。

javascript 复制代码
onBackPress(options){//这里是监听安卓物理返回键或者侧滑左滑返回方式
		if(options.from=='navigateBack'){
			return false
		}else if(options.from=='backbutton'){//物理键默认返回上一级,我们在这里进行了处理
			this.goBack()//走我们自己的方法
			return true
		}else if('xxxx){//也可以是其他方式
		
		}
	}

uniapp写的微信小程序

思路,因为uniapp写的微信小程序用onBackPress监听不到不支持监听安卓物理返回,所以换了个想法,默认认为是安卓物理键或者侧滑左滑返回:如果是我自己的按钮,就走goBackFn的方法,把androidReturn设置为true,离开页面就不会执行beforeDestroy里面的方法;如果是物理按钮返回,那么离开页面,会触发生命周期函数beforeDestroy,所以在销毁页面前,判断是否为物理按键返回,是则调用goBack

自己写的左上角返回按钮
<i class="iconfont icon-zuojiantou" style="font-size: 24px;" @click="goBackFn()"></i>

data里面定义参数

javascript 复制代码
androidReturn:true,//默认安卓物理键返回

定义方法

javascript 复制代码
goBack(){
	let pages = getCurrentPages();
				//函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面
				var num=pages.length
				//当前页面栈总数
				var backnum
				//需要返回的页数
				for(var i =0;i<num;i++){
					//循环找到指定页面路由所在的页数
					if(pages[i].route=='pages/xxx/xxx'){
					console.log(pages[i].route,'pages[i].route')
						backnum=num-i-1
						//计算返回的层数,总数-指定页面页数-1
					}		
				}
				console.log(backnum,'backnum')
				uni.navigateBack({
					delta:backnum
						//返回的页面数,如果 delta 大于现有页面数,则返回到首页。
				})
}

生命周期钩子函数写代码,可以实现微信小程序自带的左上角返回,和安卓物理键,侧滑左滑返回

javascript 复制代码
//uniapp内置了vue,所以可以用vue的生命周期
beforeDestroy() {
		if(this.androidReturn){console.log('物理键返回')
			this.goBack()
		}
	},

自定义左上角安检的返回

javascript 复制代码
goBackFn(){
			this.androidReturn=false;
			this.goBack();
		},
相关推荐
2501_915106321 天前
iOS 26 APP 性能测试实战攻略:多工具组合辅助方案
android·macos·ios·小程序·uni-app·cocoa·iphone
怪兽20141 天前
IntentService 的应用场景和使用方式?
android·面试
Jeled1 天前
云信im在Android中的使用2
android
Jerry1 天前
Compose 自定义布局和图形
android
凉辰1 天前
微信小程序uni.request 返回值存在精度丢失问题
微信小程序·小程序
杨筱毅1 天前
【Android】【底层机制】组件生命周期以及背后的状态管理
android·底层机制
李慕婉学姐1 天前
【开题答辩过程】以《基于微信小程序教学评价平台的设计与实现》为例,不会开题答辩的可以进来看看
微信小程序·小程序
计算机学姐1 天前
基于微信小程序的垃圾分类管理系统【2026最新】
java·vue.js·spring boot·mysql·微信小程序·小程序·mybatis
Jeled1 天前
Kotlin 实现社交 App 音视频模块:语音录制、播放、暂停与进度控制全流程封装
android·kotlin·android studio·音视频
沐怡旸1 天前
【底层机制】【Android】Binder架构与原理
android·面试