收藏
回答

如何拦截非首页默认展示的“返回首页”按钮的行为?

官方描述:当用户打开的小程序最底层页面是非首页时,默认展示“返回首页”按钮,开发者可在页面 onShow 中调用 hideHomeButton 进行隐藏。

  1. 如果不隐藏HomeButton, 点击后会默认跳转到小程序首页。有没有办法改变这个默认行为,让开发者自行定义跳转到具体页面?
  2. 如果在非首页页面的detached事件中,判断如果当前页是最底层页面,就做一些自定义的跳转,是不是就相当于起到了拦截HomeButton的点击事件效果?具体代码如下:
Component({
 lifetimes: {
  detached() {
    wx.switchTab({
      url: "/pages/user/index"
      })
    }
  } 
})


回答关注问题邀请回答
收藏

1 个回答

  • 有棱角的胖子
    有棱角的胖子
    2021-03-10

    detached不是自定义组件的生命周期吗,非组件页面又不能触发。

    可以试一下自定义导航栏,自己在左上角加按钮,想跳哪就跳哪

    2021-03-10
    有用
    回复 5
    • 李小子
      李小子
      2021-03-10
      组件也可以当作页面使用的。
      这是文档原文:
      使用 Component 构造器构造页面
      事实上,小程序的页面也可以视为自定义组件。因而,页面也可以使用 Component 构造器构造,拥有与普通组件一样的定义段与实例方法。但此时要求对应 json 文件中包含 usingComponents 定义段。
      此时,组件的属性可以用于接收页面的参数,如访问页面 /pages/index/index?paramA=123&paramB=xyz ,如果声明有属性 paramA 或 paramB ,则它们会被赋值为 123 或 xyz 。
      https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/component.html
      2021-03-10
      回复
    • 有棱角的胖子
      有棱角的胖子
      2021-03-10回复李小子
      那你完全可以拿自己的这段代码去试一下可不可以实现自己想要的结果啊
      2021-03-10
      回复
    • 李小子
      李小子
      2021-03-10回复有棱角的胖子
      我试过了,有效果。我这里想弄明白的是,原来的home页面跳转是被这个detached事件中的跳转阻止了从而没有发生,还是说无法阻止,home页面跳转事件还是触发了,但是被后者的自定义跳转覆盖了。
      2021-03-10
      回复
    • 有棱角的胖子
      有棱角的胖子
      2021-03-10回复李小子
      我之前试过在返回的时候,onUnload的时候跳转页面,小程序的现象是先返回然后瞬间跳转页面,中间有个难看的过度。你可以看一下你跳转后返回是返回home页还是哪个页面
      2021-03-10
      回复
    • 李小子
      李小子
      2021-03-10回复有棱角的胖子
      感谢,草率了,实践出真知。确实无法阻止home的跳转。
      2021-03-10
      回复
登录 后发表内容
问题标签