当前位置: 首页 > news >正文

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

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

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

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

自定义的左上角返回按钮

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

方法

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里面。

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里面定义参数

androidReturn:true,//默认安卓物理键返回

定义方法

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 大于现有页面数,则返回到首页。})
}

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

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

自定义左上角安检的返回

goBackFn(){this.androidReturn=false;this.goBack();},
http://www.lryc.cn/news/255792.html

相关文章:

  • 轻量封装WebGPU渲染系统示例<43>- PBR材质与阴影实(源码)
  • macOS Big Sur/Mac电脑安装vscode显示您没有权限来打开应用程序‘Visual Studio Code‘ 请联系您的电脑或网络管理员问题修复
  • jsp 如何批量改随机人名
  • android项目实战之编辑器集成
  • JAVA程序如何打jar和war问题解决
  • Microsoft 365 Copilot正式上线,如何稳定访问体验?
  • 【安卓】安卓xTS之Media模块 学习笔记(3) VTS测试
  • Go实现http同步文件操作 - 增删改查
  • Spring Boot整合 Spring Security
  • 浅谈低代码
  • Innodb-ruby深入探索Innodb存储结构
  • Echarts的使用 笔记
  • 信息系统工程的基本概念
  • SAP UI5 walkthrough step10 Descriptor for Applications
  • 打造专属小程序,乔拓云模板平台助力商家抢占先机
  • Vue2学习(组件的使用)
  • 基于Spring、SpringMVC、MyBatis开发的游乐场管理系统
  • 数据清洗、特征工程和数据可视化、数据挖掘与建模的应用场景
  • Qt简介、工程文件分离、创建Qt工程、Qt的帮助文档
  • 机器学习与低代码开发:创新驱动的双剑合璧
  • 企业博客SEO:优化SOP,助您提升搜索引擎可见性
  • [HITCON 2017]SSRFme perl语言的 GET open file 造成rce
  • 华为配置Smart Link主备备份示例
  • harmonyOS开发技巧(一)——封装hilog日志
  • npm、yarn常用命令
  • 编译和使用WPS-ghrsst-to-intermediate生成SST
  • 通过静态HTTP实现负载均衡
  • Python开发运维:Python常见异常类型
  • HarmonyOS学习 第1节 DevEco Studio配置
  • WordPress 注册/重置密码/更改密码钩子