微信小程序限制转发

义务场景

  • 用户希望某个页面只能自己转发分享,不希望被别人再次分享出去

    限制用户转发需要解决两个问题:

  • 关闭系统右上角菜单栏中的转发功能
    • 调用微信 API:wx.hideShareMenu({ }) 关闭当前页面转发功能。
  • 隐藏群聊会话中长按转发分享的功能

    • 设置 withShareTicket 参数为 true ,即带有参数的转发卡片,即分享到群聊的小程序卡片,长按就不再有转发功能了。
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      onShareAppMessage() {
      return {
      title: '分享标题',
      path: '分享路径(/pages/index/index)',
      imageUrl: '分享图片',
      success: () => {
      wx.showShareMenu({
      withShareTicket: true
      })
      },
      fail: () => {},
      complete: () => {}
      }
      },
  • 只适用于分享到群聊,如果分享给个人用户,个人用户依然是可以通过长按小程序卡片来转发的,这就需要我们再做进一步检测,检测用户进入小程序的场景

  • 用户从带 shareTicet 的小程序消息卡片打开小程序,进入场景值为 1044 ,可以通过判断场景值来判断用户是否通过群聊卡片打开
    1
    2
    3
    4
    // 检测用户进入小程序的场景值
    if (options.scene == 1044) {
    return;
    }