1,问题描述
用户通过分享进入商品详情页,此时小程序底部没有tab切换菜单,同时没有直观的按钮跳转到首页,左上角也没有返回上一页箭头,此时如果用户点击系统的Home返回键会退出小程序

2. 另一个问题
用户从上一步退出后,从小程序的最近使用下面再次进入,依然是刚刚退出的页面,没有直观的办法触达其它页面

3. 解决思路
首先想到通过场景值来做业务判断

4.场景值相关知识
app.js文件中

onShow: function (e) {
  console.log(e.scene)
},
onLaunch: function (e) {
  console.log(e.scene)
},

page页面中获取

onShow: function (e) {
  let val = wx.getLaunchOptionsSync()
  console.log(val.scene)
},

经过一番尝试发现,这个场景值只在小程序初次载入时候能获取到,用户如果刚刚打开过小程序,然后又通过别人分享到达商品页,此时的场景值是自己上次载入时候的值,所以这时候场景值并不能作为用户来源的依据

5.换个思路
既然场景值无法用,想到从路由列表入手,分享进入的用户,历史路由里只有唯一的一个当前页路由,这也是没有左上角返回按钮的原因所在,如果路由表长度为1,那么就显示一个跳转到首页的按钮出来,正常情况下这个按钮隐藏

data: {
  isJumpToHomeHidden: true
}
onShow: function () {
  let pages = getCurrentPages()
   if (pages.length == 1) {
    this.setData({
      isJumpToHomeHidden: false
    })
  }
},
onUnload: function () {
  this.setData({
    isJumpToHomeHidden: true
  })
},
onHide: function () {
  this.setData({
    isJumpToHomeHidden: true
  })
},
作者 铁血 汉子 2019年9月4日
2024/12/21/05:23:02pm 2019/9/4/10:10:28
0 2486