小程序扫码进入、分享小程序进去获取参数

扫码进入

二维码是后台给过来的,详情查看 微信二维码跳转规则

前端拿参数

通过上面方法生成的二维码扫码进入后的地址 是经过 encodeURIComponent 编码的所以 我们需要通过 decodeURIComponent 进行解码
他是有一个 q 参数的

Page({
  onLoad(query) {
    const q = decodeURIComponent(query.q) // 获取到二维码原始链接内容
    const scancode_time = parseInt(query.scancode_time) // 获取用户扫码时间 UNIX 时间戳
  }
})

使用 Taro 框架 扫码进入获取参数

我最开始在微信开发者工具调试的时候,他是有 q 这个参数的 但是 我发到正式版本之后就没有了,我也不知道是怎么回事,

# 假设真实路径为 https://baidu.com?id=2

function getSceneFromCurrentPage() {
  try {
    const currentPage = Taro.getCurrentInstance().router;
    if (currentPage?.params.q) {
      // 
      let urlQ = decodeURIComponent(currentPage?.params.q)
      // 这个 urlQ 才是 原始的参数 https://baidu.com?id=2
      if (urlQ.includes('?')) {
        let str = urlQ.split('?')
        str.map(s => {
          let strArr = s.split('=')
          if (strArr[0] === 'id') {
            console.log(strArr[1], 'strArr[1]')
            throw strArr[1]
          }
        })
      }
      return urlQ;
    } else {
    	# 我发正式版本后
      if (currentPage?.params?.scene) {
      
      	# currentPage?.params.scene 是 id%3A2
      	// 所以我们需要 decodeURIComponent 解码 
      	// 我们进行编码的后得到 id:2
      	
        let param = decodeURIComponent(currentPage?.params.scene)
        if (param.includes(':')) {
          let str = param.split(':')
          param = str[1]
        }
        return param
      }
    }
  } catch (e) {
    return e
  }
}

获取分享出去路由携带的参数

useShareAppMessage((res) => {
    if (res.from === 'button') {
        // 来自页面内转发按钮
        getApipostShare()
    }
    return {
        title: '分享',
        path: `pages/index/index/?id=${2}`,
    }
})
// https://baidu.com?id=2
const $router = useRouter();
$router.params.id
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值