获取url地址后面参数的2种方法(小程序二维码跳转参数解析)

        微信扫描小程序二维码后,在页面的onLoad函数的参数options内可以拿到跳转参数scene值,但是需要对scene进行decodeURIComponent操作,方法如下:

方法一:

 扫码二维码地址:
    https://api.test.cn/qrcode/jksi/code?sourceCode=abxd&Name=你我他

//截取url中的参数
      getUrlParams(url) {
        let o = {};    
        if (url.indexOf("?") != -1) {       
        let str = url.substr(url.indexOf("?") + 1).replace(/[#/|/#/]/g, "");       
        // console.log(str);       
        let strs = str.split("&");       
        // console.log(strs);      
        for (let i = 0; i < strs.length; i++) {      
        o[strs[i].split("=")[0]] = decodeURIComponent(strs[i].split("=")[1]);        
         }
        }
        return o;
      },


    onLoad (options) {
        // scene需要使用decodeURIComponent才能获取到生成二维码时传入的scene
        let decodeScene = decodeURIComponent(options.q);
        let urlParams = this.getUrlParams(decodeScene)
        let sourceCode= urlParams.sourceCode
        let Name= urlParams.Name
          
  }

方法二:

  页面地址:pages/home/home?courseId=1&lessonId=1
   scene值:courseId=1&lessonId=1

//参数解析
     getQueryValue(query, queryName) {
        const reg = new RegExp("(^|&)" + queryName + "=([^&]*)(&|$)", "i");
        const r = query.match(reg);
        if (r !== null){
          return r[2];
        } else {
          return null;
        }
      }


    onLoad (options) {
        // scene需要使用decodeURIComponent才能获取到生成二维码时传入的scene
        const decodeScene = decodeURIComponent(options.scene);
        const courseId = getQueryValue(decodeScene, ‘courseId’);
        const lessonId = getQueryValue(decodeScene, ‘lessonId’);
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值