微信小程序返回多级页面如何实现

本文主要介绍了微信小程序返回多级页面的实现方法的相关资料,希望通过本文能帮助到大家,让大家实现这样的功能,需要的朋友可以参考下,希望能帮助到大家。

微信小程序返回多级页面的实现方法

微信小程序开发中,返回上一页是很普遍的操作,最常见的是点击手机的返回键和点击自定义的按钮返回上一页这两种情况。点击手机的返回键我们不需要做处理,如果是自定义按钮实现返回效果,就要调用微信提供的API:

wx.navigateBack(OBJECT)

登录后复制

也可以通过 wx.navigateBack 方法实现返回多级页面,只要设置 delta 的值就可以:

//在C页面内 navigateBack,将返回A页面,delta = 1 时与 wx.navigateBack() 效果一致wx.navigateBack({ delta: 2})

登录后复制

但是有些时候,我们需要实现点击手机的返回键,也返回上两页或者多页,这样子就不能直接用上面的方法来处理了。我用过下面的两种方法来实现:

方法一:在页面C的 onUnload 方法里面调用 wx.navigateBack() ,这样可以实现返回到页面A,不过会有个问题,如果把页面C分享到微信聊天会话里面,然后关闭小程序,再从聊天会话打开页面C,还会调用 wx.navigateBack() 方法,并且报这个异常:

WAService.js:9 navigateBack with an unexist webviewId 0

登录后复制

方法二:另一种方法是在页面B的 onShow 方法中调用 wx.navigateBack() 实现返回 ,这样就可以避免方法一中出现的问题。实现的思路如下:

① 在页面C的 onUnload 方法里面判断是否可以返回前n页,通过 getCurrentPages() 方法可以获取当前的页面栈,根据页面栈的长度判断可以返回的层数,并且可以给所有页面的 data 设置参数,这里以返回上两页为例:

 //这里是页面C的 onUnload 方法  onUnload: function() {    var that = this    //判断页面栈里面的页面数是否大于2    if(getCurrentPages().length > 2) {      //获取页面栈      let pages = getCurrentPages()      //给上一个页面设置状态      let curPage = pages[pages.length - 2];      let data = curPage.data;      curPage.setData({'isBack': true});    }  },

登录后复制

② 在页面B的 onShow 方法里面根据 isBack 的值,判断是否调用 wx.navigateBack() :

  //这里是页面B的 onShow 方法  onShow: function() {    var that = this    //如果 isBack 为 true,就返回上一页    if(that.data.isBack) {      wx.navigateBack()    }  },

登录后复制

方法一和方法二都不是直接从页面C到页面A,都是要先经过页面B,所以会出现页面B闪一下的情况,大家如果有更好的方法可以告诉我。

相关推荐:

微信小程序实现上传头像详解

微信小程序template模板详解

微信小程序流程进度的图样式功能实现方法

以上就是微信小程序返回多级页面如何实现的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2790305.html

(0)
上一篇 2025年3月8日 18:55:02
下一篇 2025年3月2日 23:34:45

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 微信小程序getUserInfo回调详解

    本文主要介绍了微信小程序-getuserinfo回调的实例详解的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下,希望能帮助到大家。 微信小程序-getUserInfo回调的实例详解 前言: 这里就不吹嘘微…

    2025年3月8日
    200
  • 微信小程序input输入实例详解

    本文主要介绍了微信小程序 input输入及动态设置按钮的实现的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下,希望能帮助到大家。 微信小程序 input输入及动态设置按钮的实现 【需求】实现当手机号已填写和协议已勾选时,“立即登录…

    编程技术 2025年3月8日
    200
  • 本地搭建微信小程序服务器如何实现

    本文主要介绍了本地搭建微信小程序服务器的实现方法的相关资料,希望通过本文能帮助到大家,让大家轻松的搭建自己的微信小程序的服务器,需要的朋友可以参考下,希望能帮助到大家。 本地搭建微信小程序服务器的实现方法 现在开发需要购买服务器,价格还是有…

    2025年3月8日 编程技术
    200
  • Popup弹出框添加数据如何实现

    本文主要为大家详细介绍了popup弹出框添加数据的简单实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。 逻辑 窗口P1中显示一组数据,并提供一个添加按钮点击按钮,弹出新的浏览器窗口P2,在其中添加一条数据并提交…

    2025年3月8日
    200
  • Vue v2.5 调整和更新不完全如何解决

    本文主要介绍了vue v2.5 调整和更新不完全问题的相关资料,需要的朋友可以参考下,希望能帮助到大家。 Vue 2.5 Level E 发布了: 新功能特性一览 近日,Vue v2.5 发布,除了对 TypeScript 的更好的支持外,…

    2025年3月8日
    200
  • div中文字内容溢出如何解决

    有时候我们在div里编辑内容时会溢出,那么出现这种情况怎么办呢?本文主要介绍了p中文字内容溢出常见的解决方法。具有很好的参考价值。来一起学习一下吧。 由于文字内容的长度不确定性和页面布局的固定性,常常会遇到文字溢出的状况,有一下解决方法: …

    编程技术 2025年3月8日
    200
  • Angular2页面大小变化

    一、现象 全屏页面中的图表,在很多的时候需要 resize 一把,以适应页面的大小变化,本文主要介绍了Angular2监听页面大小变化的解决方法,需要的朋友可以参考下,希望能帮助到大家。 二、解决 1、引入 : import { Obser…

    编程技术 2025年3月8日
    200
  • React实践Tree组件如何使用

    本文主要介绍了react实践之tree组件的使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 实现功能 渲染数据 展开合并 使用 数据结构: const node = { title:…

    2025年3月8日
    200
  • JS实现div点击跳转到另一页面实例代码

    本文主要介绍了js动态添加的p点击跳转到另一页面实现代码,需要的朋友可以参考下,希望能帮助到大家。  p调用函数跳转: var obj = document.getElementById(‘id’);obj.onclick=function…

    编程技术 2025年3月8日
    200
  • 微信小程序翻牌小游戏的实现

    本文主要为大家详细介绍了微信小程序版翻牌小游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。 一、新建一个quick start项目看看结构 在微信开发工具点击添加项目,选择 无appid,勾上”在当前目…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论