微信小程序 - - - - - 转发分享(发送给好友、分享到朋友圈)

本文详细介绍了如何在小程序中实现分享到好友和朋友圈的功能,包括`onShareAppMessage`和`onShareTimeline`的使用,以及在分享到朋友圈后遇到的‘单页模式’限制问题。解决方案是调整接口请求为无需登录态的方式,确保在单页模式下正常展示数据。

1. 发送给好友

1.1 效果图:

在这里插入图片描述

在这里插入图片描述

1.2 实现步骤:

  1. 监听用户点击右上角菜单的「转发」按钮时触发的事件
  2. 设置转发的参数

官方文档:onShareAppMessage
在这里插入图片描述

1.3 实现代码:

****.js

  // 监听用户点击右上角菜单的「转发」按钮时触发的事件
  onShareAppMessage() {
    // 设置转发的参数
    return {
      title: '这里是分享的标题',
      path: '/pages/index/index',
      imageUrl: 'https://img.chinasongzhuang.cn/uploadimg/image/20200219/20200219180104_83804.jpg'
    }
  },

2. 分享到朋友圈

2.1 效果图:

在这里插入图片描述

在这里插入图片描述

2.2 实现步骤

分享到朋友圈 不支持自定义页面路径!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  1. 监听用户点击右上角菜单的「转发」按钮时触发的事件
  2. 设置转发的参数
  3. 在***.json 里配置当前页面标题"navigationBarTitleText": "我是页面标题"

官方文档:onShareTimeline
在这里插入图片描述

2.3 实现代码:

****.js

  // 监听用户点击右上角菜单的「转发」按钮时触发的事件
  onShareTimeline() {
    // 设置转发的参数
    return {
      title: '我是朋友圈看到的描述文案',
      query: 'from=pyq'
    }
  },

3. 遇到的问题

3.1 分享到朋友圈后无法正常展示数据?

我们分享到朋友圈的小程序页面,用户打开时会进入一个“单页模式”。 “单页模式”下,一些组件或接口存在一定限制

“单页模式”下,页面顶部固定有导航栏,标题显示为分享时的标题。底部固定有操作栏,点击操作栏的“前往小程序”可打开小程序的当前页面。顶部导航栏与底部操作栏均不支持自定义样式

解决办法:
在单页模式下,将所有接口请求方法改写为无需登录态的请求方式



参考文献:一文看懂:小程序分享到朋友圈

### 微信小程序实现分享朋友圈功能微信小程序中,要实现分享朋友圈功能,可以通过 `wx.showShareMenu` 方法启用分享菜单,并通过配置参数允许用户将内容分享朋友圈。以下是详细的说明以及代码示例。 #### 启用分享功能 为了使页面能够被分享,需先调用 `wx.showShareMenu` 方法并传入相应的参数: ```javascript wx.showShareMenu({ withShareTicket: true, // 是否使用带 share ticket 的转发,默认为 false menus: ['shareAppMessage', 'shareTimeline'] // 设置分享选项,包括好友朋友圈 }); ``` 上述代码会激活页面右上角的「...」按钮,并展示两个可选的分享入口:发送给朋友 (`shareAppMessage`)分享朋友圈 (`shareTimeline`) [^1]。 #### 配置分享内容 当用户点击分享时,可通过 `Page` 对象中的 `onShareAppMessage` 和 `onShareTimeline` 函数分别定义发送给朋友和分享朋友圈的具体行为。 ##### 分享朋友圈 以下是一个完整的例子,用于设置分享朋友圈的内容: ```javascript Page({ onShareTimeline() { return { title: '这是一个测试标题', // 分享朋友圈的标题 query: 'id=123&name=test', // 带参跳转链接,传递额外数据 imageUrl: 'https://example.com/image.jpg' // 自定义封面图地址 }; } }); ``` 此处需要注意的是,`imageUrl` 参数指定的图片必须满足一定的尺寸要求(建议宽高比例接近正方形),否则可能导致加载失败或显示异常 [^4]。 ##### 发送给朋友 同样地,也可以单独定制发送给朋友时的行为: ```javascript Page({ onShareAppMessage() { return { title: '推荐给你一个好东西', path: '/pages/index/index?id=123', // 跳转路径 imageUrl: 'https://example.com/another-image.png' }; } }); ``` 这两个函数可以根据实际需求独立存在或者同时存在于同一个页面逻辑文件里 [^3]。 #### 官方 API 文档补充 对于更深入的应用场景和技术细节,可以查阅微信官方提供的最新版《开发者文档》。例如,在某些特定情况下可能还需要考虑权限校验等问题 [^2]。 --- ### 注意事项 - 如果发现某个具体版本的小程序仍然无法正常触发分享操作,请确认是否遗漏了必要的初始化步骤; - 图片资源应存放在公网服务器上以便顺利拉取渲染; - 测试期间记得切换成正式环境模式再验证最终效果。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值