微信小程序分享参数传递(微信小程序获取分享path参数)

原因:

在写一个小程序,需要为每个人分配一个userId,通过分享统计每个人分享次数以及用户事通过哪个人分享链接成为新用户的。

小程序官方文档:

onShareAppMessage: function (res) {
    if (res.from === 'button') {
      // 来自页面内转发按钮
      console.log(res.target)
    }
    return {
      title: '自定义转发标题',
      path: '/page/user?id=123',
      success: function(res) {
        // 转发成功
      },
      fail: function(res) {
        // 转发失败
      }
    }
  }

然后在Page.onLoad中通过参数options获取
例如获取上述id的值

console.log('onLoad-options.id:' + options.id);

问题:根据文档做了个实验

实验1.

使用一台手机扫码预览打印null或者undefined,点击分享给另一个人,然后退出。

使用同一台手机点开刚刚分享给别人的链接看到调试台正确打印分享参数。

实验2.

使用一台手机扫码预览打印null或者undefined,点击分享给另一个人,然后退出。

使用另一台手机让你刚刚分享给那个人的微信点击链接,你会发现根本就没有任何log输出。

注意:不要使用刚才的手机或者微信号了或者你可以在path后面加一个参数:

path: '/page/user?id=123&password=123456'

然后在Page.onLoad中打印一下

console.log('onLoad-options.id:' + options.id + 'password:' + options.password);

你会发现打印出来的只有options.id信息。

实验3.

使用一台手机扫码预览打印null或者undefined,点击分享某个群聊,然后退出。

在群聊中让另外一个可以调试的人点击链接发现结果与实验2一致。

结论:

只有扫描过同一个预览版本的手机点击对方发送的分享链接才能把所有参数正确打印出来。否则打印的是上一次扫描的预览版本的字段。如果最后一次预览版本与上一次预览版本有相同字段,则内容可以正确打印最新值。否则打印内容是上一次为null或者undefined的字段。
  • 7
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值