【微信小程序】判断用户是否从朋友圈进入小程序并传相关参

前言

需求:对于从朋友圈链接进来的用户,希望其只能查看对应的内容。
也可以用来做:从朋友圈进入后跳转到指定的某页面。

实现:

前置知识:

  1. Object wx.getEnterOptionsSync():获取本次小程序启动时的参数。 返回值中包括:scene 启动小程序的场景值;完整的场景值列表。
    • 从朋友圈进入的场景值为:
      • 1154:朋友圈内打开“单页模式”;
      • 1155:“单页模式”打开小程序;
  2. onShareTimeline():监听右上角菜单“分享到朋友圈”按钮的行为,并自定义分享内容。
    注意:只有定义了此事件处理函数,右上角菜单才会显示“分享到朋友圈”按钮。
    使用:事件处理函数会return一个 Object,用于自定义分享内容,不支持自定义页面路径。
    这里主要用到query:自定义页面路径中携带的参数,如 path?a=1&b=2 的 “?” 后面部分
  • query传多个参数的格式:
	return {
       title: xxx,
       query: 'aaa='+a+'&bbb='+b+'&ccc='+c,
       imageUrl:"../../image/xxx.png"
     }
  • query参数的获取:在onLoad(options)中可以获取。options.aaa,options.bbb

使用思路

  • 在页面1的onShareTimeline()中带上内容的信息(如内容id等)。
  • 在页面1的onLoad(options)中 使用 wx.getEnterOptionsSync() 获取场景值并进行判断,如果是来自朋友圈的进入,就读取options中的query,进行下一步操作。

参考代码

  onLoad: function (options) {
    var q = wx.getEnterOptionsSync()
    if (q.scene == 1154|| q.scene == 1155) {
    	//下面可以写对应的操作,这边是进行了一个跳转
        wx.redirectTo({
          url:'/xxx/xxx/?id='+options.id + "&title="+ options.title
        })
    }
    ...
 }

onShareTimeline: function () {
   return {
	  title: 'xxx',
      query:'id='+id+'&title='+title,
      imageUrl:'xxx.jpg'
    }
  },
  • wx.redirectTo:关闭当前页面,跳转到应用内的某个页面

参考:
onShareTimeline的query 参数如何获得?
微信小程序判断是否是通过点击分享链接进入的小程序

你可能感兴趣的:(微信小程序,微信小程序,小程序,javascript)