微信小程序扫码后跳到指定页面又瞬间跳到首页问题
发布于 5 年前 作者 xiuying14 10585 次浏览 来自 问答

    在发布到正式版后,与客户端联调。经常性会出现扫码后会先跳到二维码的指定页面,然后瞬间跳到首页上;然后退出小程序在扫码后,会一切正常跳转到指定页面。我看瞬间跳转到首页就像点击了返回按钮一样是从左边出来的,但是我项目中唯一强制跳转到首页是另一个页面。百思不得其解。求大佬们提出一些意见或者怎么才能查出问题所在,谢谢。

        这是一个页面扫码进来的逻辑,先贴出来。代码里根本没有跳转首页或者返回页面的逻辑

onLoad: function (options) {

// 如果本地有这个证明是扫码,这个会在app.js中onshow清空和列表点击清空。

   if (wx.getStorageSync("isScanOption")) {
     options = wx.getStorageSync("isScanOption");
   }
   // 扫描进来的_meetingGuid,mac地址,isScan 是否是扫码
   let [meetingGuid, clientMac, isScan] = ['', '', 0];
   //如果存在证明是扫码进来 赋值给globalData
   if (options && options.q) {
     const scene = decodeURIComponent(options.q);
     clientMac = this.getUrlParam(scene, 'clientMac') //mac地址
     meetingGuid = this.getUrlParam(scene, 'meetingGuid');
     app.globalData.meetingGuid = meetingGuid;
     console.log("创建投票-scene:::::::::", scene)
 
     //如果是扫码进来的要保存下来参数,因为如果是未登录跳到登录或者跳到完善信息的页面,在回来会不执行onload方法。所以要在onShow重新调用onload方法
     wx.setStorageSync("isScanOption", options);
     isScan = 1;
   } else {
     isScan = 0;
     // wx.setStorageSync("createIsScanOption", null);
     clientMac = ""
     meetingGuid = app.globalData.meetingGuid;
   }
   this.setData({
     isScan: isScan
   })
   this.getMeetInfo(meetingGuid, clientMac, isScan, 2);
   // 如果存在 edit //表编辑页面需要获取参数
   if (options && options.edit) {
     this.data.edit = true;
     this.getVoteInfo(options.voteGuid);
   }
 },

我发现了这个规律,因为我在某个页面写了个

onUnload: function () {
   wx.switchTab({
     url: '/pages/meet/meet'
   })
 },

当我扫码后进行一系列操作进入这个页面,退出小程序在扫码,就会出现以上我陈述的问题。

我好像明白逻辑了。他扫码后首先进入这个页面,然后跳转到扫码指定的路径时,就会执行onUnload这个方法,好笨哦,终于理清了。

再次提问,然而我的逻辑判断是错误的,只要退出小程序时上一个页面不是tab上的页面,就会跳到首页去,但是有一个二级页面又不会跳。找不到规律了,我知道我说的很乱。。。。哎。

1 回复

没有复现的代码片段,猜不出来

回到顶部