一对一免费咨询:189-6833-3365

微信小程序(procedure)开发中,返回上一页是很普遍的操作,最常见的是点击手机的返回键和点击自定义的按钮返回上一页这两种情况。点击手机的返回键我们不需要做处理,如果是自定义按钮实现返回效果,就要调用微信提供的API:wx。 。。
微信小程序(procedure)开发中,返回上一页是很普遍的操作,最常见的是点击手机的返回键和点击自定义的按钮返回上一页这两种情况。点击手机的返回键我们不需要做处理,如果是自定义按钮实现返回效果,就要调用微信提供的API:
wx。navigateBack(OBJECT)
也可以通过 wx。navigateBack 方法实现返回多级页面,只要设置 delta 的值就可以:
//在C页面内 navigateBack,将返回A页面,delta = 1 时与 wx。navigateBack() 效果一致wx。navigateBack({ delta: 2})
但是有些时候,我们需要实现点击手机的返回键,也返回上两页或者多页,这样子就不能直接用上面的方法来处理了。我用过下面的两种方法来实现:
方法一:在页面C的 onUnload 方法里面调用 wx。navigateBack() ,这样可以实现返回到页面A,不过会有个问题,如果把页面C分享到微信聊天会话里面,然后关闭小程序(procedure),再从聊天会话打开页面C,还会调用 wx。navigateBack() 方法,并且报这个异常:
WAService。宁波微信小程序开发是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。js:9 navigateBack with an unexist webviewId 0
方法二:另一种方法是在页面B的 onShow 方法中调用 wx。navigateBack() 实现返回 ,这样就可以避免方法一中出现的问题。实现的思路如下:

  ① 在页面C的 onUnload 方法里面判断是否可以返回前n页,通过 getCurrentPages() 方法可以获取(obtain)当前的页面栈,根据页面栈的长度判断可以返回的层数,并且可以给所有页面的 data 设置参数(parameter),这里以返回上两页为例:
//这里是页面C的 onUnload 方法
  onUnload: function() {
  var that = this
  //判断页面栈里面的页面数是否大于2
  if(getCurrentPages()。宁波小程序开发对于用户来说,能够节约使用时间成本和手机内存空间;对于开发者来说也能节约开发和推广成本。length gt; 2) {
  
  //获取(obtain)页面栈
  
  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闪一下的情况,大家如果有更好的方法可以告诉我。

© 2008-2019 浙江东美 ALL RIGHTS RESERVED. XMLBAIDU

免责申明:部分内容来自互联网,若侵犯了您的权益,请告知我们删除!

浙ICP备19019195号-1
找网站建设公司就上东美!
189-6833-3365
tel+86-189-6833-3365