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

文章介绍了如何在微信小程序中,利用wx.getEnterOptionsSync获取启动参数,结合onLoad和onShareTimeline方法,判断用户是从朋友圈进入并实现特定内容的查看或指定页面的跳转。关键在于设置分享时的query参数和在onLoad中解析处理这些参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

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

实现:

前置知识:

  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 参数如何获得?
微信小程序判断是否是通过点击分享链接进入的小程序

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值