小程序动态隐藏分享按钮

业务背景:小程序需要根据条件动态隐藏分享给好友、分享到朋友圈功能

原生小程序中加上分享函数,页面就可分享,如下:

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

但是我们要动态设置分享按钮(例如根据后端返回的身份展示),如果去掉这个函数那所有人都无法分享,显然不合适,所以我们需要动态来设置

话不多说,上码,粘过去直接用

满足条件隐藏分享给好友按钮

if (条件) {  
    wx.hideShareMenu({
        menus: ['shareAppMessage']//menus: ['shareAppMessage', 'shareTimeline']
    })
}

说明:
1、"shareAppMessage"表示“发送给朋友”按钮,"shareTimeline"表示“分享到朋友圈”按钮
2、隐藏“发送给朋友”按钮时必须同时隐藏“分享到朋友圈”按钮,隐藏“分享到朋友圈”按钮时则允许不隐藏“发送给朋友”按钮(也就是说隐藏了‘发送给朋友’,那么‘分享到朋友圈’就必然没有)

参考链接:https://developers.weixin.qq.com/miniprogram/dev/api/share/wx.hideShareMenu.html

觉得不错,赏个关注呗😀,不胜感激Thanks♪(・ω・)ノ

### 微信小程序实现点击按钮触发分享功能 在微信小程序中,通过调用 `wx.onShareAppMessage` 或者配置页面的 `onShareAppMessage` 方法可以实现分享功能[^1]。以下是具体的实现方式以及示例代码: #### 配置页面分享功能 为了使页面支持分享操作,需要在对应的页面逻辑文件(`.js` 文件)中定义 `onShareAppMessage` 函数。该函数会在用户点击右上角菜单中的“转发”按钮或者自定义按钮时被触发。 ```javascript Page({ onShareAppMessage() { return { title: '这是一个分享标题', // 设置分享出去后的标题 path: '/pages/index/index?userId=123', // 设置分享路径,可带参数 imageUrl: 'https://example.com/share-image.png' // 自定义分享图标 }; } }); ``` 上述代码实现了当用户点击默认分享按钮时,会携带指定的标题、路径和图片进行分享。 #### 添加自定义按钮触发分享 如果希望由某个特定按钮触发分享行为,则可以在绑定事件处理程序的同时手动调用 `wx.shareAppMessage` 接口完成此操作。需要注意的是,这种方式仅适用于某些特殊场景下的主动触发,而大多数情况下推荐使用右上角菜单的方式。 下面是一个例子展示如何设置一个按钮用于启动分享流程: HTML部分: ```html <button bindtap="handleCustomShare">点击这里分享</button> ``` JS部分: ```javascript Page({ handleCustomShare(e) { wx.showShareMenu({ withShareTicket: true }); // 显示当前页面的分享选项卡 const shareData = this.onShareAppMessage(); // 调用已有的分享方法获取数据 wx.hideShareMenu(); // 可选:隐藏原生分享入口以防重复显示 console.log('模拟分享:', shareData); // 如果需要真正执行分享动作则需依赖系统回调机制而非直接发起请求 }, onShareAppMessage() { return { title: '来自我的应用', path: '/index' }; } }) ``` 注意,在实际项目里可能还需要考虑权限控制等问题[^2]。 另外值得注意的一点是关于退出或关闭整个小程序的操作并非经由常规意义上的‘分享’途径达成;而是借助 `<navigator>` 组件配合属性设定来完成相应任务[^3] 。不过这并不属于本话题讨论范畴之内。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值