小程序分享到朋友圈功能

文章转自:https://zhuanlan.zhihu.com/p/159265422

2020年7月7日(据说是6日深夜),一个很特别的日子,微信低调地放开了一个功能:微信小程序“分享到到朋友圈”,这个看似微小的变化,对广大微信小程序开发者来说意义重大。

曾几何时,有多少产品为此和甲方费尽口舌,有多少UI绞尽脑汁只为设计出绚丽的海报,有多少前端开发笨拙的使用着canvas画海报。而只是因为,微信小程序不支持分享到朋友圈。

因此我们需要绚丽的带着文字的海报,引导用户保存海报到相册,进而发朋友圈。而朋友圈的好友看到后还要点开图片长按识别画好在海报中的小程序码。进而进入小程序。繁杂的步骤使得小程序几乎无法在朋友圈进行推广。好在,终于支持了。

目前此功能没有完全放开,需微信安卓7.0.16版本才支持,灰度测试 ,iOS版本暂不支持。

和分享至会话不同的是,分享至朋友圈目前只能通过点击小程序胶囊按钮的方式分享。

点击胶囊按钮分享朋友圈和分享至会话用法基本一致:

// 分享至会话
onShareAppMessage: function (res) {
    if (res.from === 'button') {
      // 来自页面内转发按钮
        console.log(res.target)
    }
    return {
        title: '自定义转发标题',
        path: '/page/user?id=123',
        imageUrl: 'http://....png'
    }
}
// 分享至朋友圈
onShareTimeline: function (res) {
    if (res.from === 'button') {
      // 来自页面内转发按钮
        console.log(res.target)
    }
    return {
        title: '自定义转发标题',
        query: 'id=123',
        imageUrl: 'http://....png'
    }
}

用法基本一致。但是分享至朋友圈里面传值只有 query 而没有 path 。因此在用户点击胶囊按钮分享至朋友圈只能分享当前页面。至于更多的需求可以通过 query 传参自己实现。

而在页面内点击转发按钮,分享至会话只需要设置一下 open-type 就好:

<button open-type="share">分享页面给好友</button>

而要实现分享至朋友圈则还没有相关 open-type。

对于分享。微信官方也提供了相关API可以控制分享按钮的状态。如你也可以在 onLoad 里面执行:

wx.showShareMenu({
  withShareTicket: true,
  menus: ['shareAppMessage', 'shareTimeline']
})

来获得和上面一样的效果。这里就不展开了。

基本配置成功之后就长这样:

目前仅支持在这里面分享,后期也不知道会不会支持点击页面里面的按钮分享。

虽然微信方面目前提供了分享到朋友圈的接口,但是在使用中会有一些注意事项:

  1. onShareTimeline 返回的对象里面没有 path 属性,用 query 代替
  2. onShareTimeline 使用的前提是 onShareAppMessage 必须定义

相关的文档我也放在这里了,如果有错误,还请不吝指出,万分感谢。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现微信小程序分享朋友圈,需要先引入微信官方提供的wx.updateTimelineShareData() API。具体步骤如下: 1. 在小程序JS文件中编写分享功能的代码,例如: ``` // 点击分享按钮时触发 onShare: function () { wx.updateTimelineShareData({ title: '分享标题', query: '分享参数', imageUrl: '图片URL', success: function () { // 分享成功 }, fail: function () { // 分享失败 } }) } ``` 2. 在wxml文件中添加一个分享按钮,例如: ``` <button bindtap="onShare">分享朋友圈</button> ``` 3. 在小程序的app.json文件中添加权限声明: ``` { "mp-weixin": { "appid": "YOUR_APPID", "permission": { "scope.userLocation": { "desc": "你的位置信息将用于小程序位置接口的效果展示" } } } } ``` 4. 在用户点击分享按钮之前,需要获取用户授权访问相册的权限: ``` wx.authorize({ scope: 'scope.writePhotosAlbum', success: function () { // 用户已经同意授权 }, fail: function () { // 用户拒绝授权 } }) ``` 5. 在用户同意授权之后,可以使用wx.downloadFile() API下载图片并保存到相册中: ``` wx.downloadFile({ url: '图片URL', success: function (res) { wx.saveImageToPhotosAlbum({ filePath: res.tempFilePath, success: function () { // 图片保存成功,可以调用分享接口 }, fail: function () { // 图片保存失败 } }) }, fail: function () { // 图片下载失败 } }) ``` 以上就是实现微信小程序分享朋友圈的基本步骤。需要注意的是,用户必须先授权访问相册的权限,才能够保存分享图片。同时,分享内容需要经过微信审核才能够正常分享

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值