微信小程序分享参数传递(微信小程序获取分享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的字段。

猜你喜欢

转载自blog.csdn.net/longlongvalue/article/details/79745681