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 }) },