uni-app 关于微信小程序分享,app微信聊天界面和朋友圈分享

前端小白的uni-app艰难学习之路

微信小程序分享

实现微信小程序分享和app内微信分享
小程序分享很简单,我们通过button的open-type属性

<!-- #ifdef MP-WEIXIN -->
      <button class="share-btn" open-type="share">立即分享</button>
      <!-- #endif -->

然后定义onShareAppMessage方法(与onload同级)

onShareAppMessage(res) {
      return {
        title: '微信小程序测试分享',
        path: '/pages/common/login'
      }
    }

其中path是你的分享被点击后跳转的页面,需要是完整的路径

app微信分享

在app内调用分享,不会自动生成图片,需要我们自己生成,我这里是分享本页,所以先使用了截图功能,把本页内容生成图片并保存在相册,然后分享时从相册中获取并分享
首先是截图并保存

share: function () {
        this.showShare = true
        var pages = getCurrentPages()
        var page = pages[pages.length - 1]
        var bitmap = null
        var currentWebview = page.$getAppWebview()
        bitmap = new plus.nativeObj.Bitmap('amway_img')
        // 将web内容绘制到Bitmap对象中
        currentWebview.draw(bitmap, function () {
          bitmap.save("_doc/a.jpg", {}, function (i) {
            uni.saveImageToPhotosAlbum({
              filePath: i.target,
              success:function(){
                bitmap.clear()
                uni.showToast({
                  title: '保存图片成功',
                  mask: false,
                  duration: 1500
                })
              }
            })
          }
          ,function (e) {
            // console.log('保存失败', + JSON.stringify(e))
          })
        },
        function (e) {
          // console.log('截屏失败', JSON.stringify(e))
        })
      }

然后是选择分享到微信聊天界面还是朋友圈

shareToWeixin: function (scene) {
        uni.chooseImage({
          count: 1,
          sizeType: ['compressed'],
          sourceType: ['album'],
          success: (res) => {
            uni.share({
              provider: 'weixin',
              type: 2,
              title: 'app微信分享测试',
              scene: scene,
              imageUrl: res.tempFilePaths[0],
              success: (res) => {
                // console.log(res)
                uni.showToast({
                  title: '分享成功!'
                })
              },
              fail: (err) => {
                // console.log(err)
              }
            })
          }
        })
        
      },
  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值