微信公众号分享朋友圈或是朋友

主要参考文档-微信公众号平台:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115

1步骤:添加接口文档 

//获取微信凭证
getToken() {
  console.log(window.location.href)
  let params = new URLSearchParams();
  let url = window.location.href.split('#')[0]
  params.append('url', url)
  return axios({
    method: "POST",
    url: '/jssdkParamter',
    data: params
  })
},
2 下载安装:weixin-jsapi
cnpm install weixin-jsapi  --save-dev
3、引入
import wx from 'weixin-jsapi'
4、在mounted或是created中使用
//自定义分享
this.$api.getToken().then(data => {
  var that = this;
  //需要后台返回来的数据
  wx.config({
    debug: false,//true:调试时候弹窗
    appId: data.data.appId, // 必填,公众号的唯一标识   微信appid
    timestamp: data.data.timestamp, // 必填,生成签名的时间戳,精确到秒
    nonceStr: data.data.nonceStr, // 必填,生成签名的随机串
    signature: data.data.signature, // 必填,签名
    jsApiList: ['scanQRCode', 'updateAppMessageShareData', 'onMenuShareAppMessage', 'onMenuShareTimeline']
  })
  wx.ready(function () {

    wx.onMenuShareAppMessage({
      title: '拼团果',
      desc: '莱田洗碗机 可以查看好友或是自己的拼团结果,我们有最好最优惠的产品,赶快加入我们吧 可以查看好友或是自己的拼团结果,我们有最好最优惠的产品,赶快加入我们吧!!!!!!!',
      link: window.location.href.split('#')[0].split('?')[0] + '#' + window.location.href.split('#')[1],
      type: 'link',
      imgUrl: 'http://fupin.91xiaokong.com/images/dishwasher_img/images/mcbg.png',
      success() {
        setTimeout(function () {
          that.shareActionHT();
        }, 700)
      },
      cancel: function (res) {
        alert('你没有分享给朋友');
      },
      fail: function (res) {
        alert(JSON.stringify(res));
      }

    });
    wx.onMenuShareTimeline({
      title: '拼团果',
      desc: '莱田洗碗机 可以查看好友或是自己的拼团结果,我们有最好最优惠的产品,赶快加入我们吧 可以查看好友或是自己的拼团结果,我们有最好最优惠的产品,赶快加入我们吧!!!!!!!',
      link: window.location.href.split('#')[0].split('?')[0] + '#' + window.location.href.split('#')[1],
      imgUrl: 'http://fupin.91xiaokong.com/images/dishwasher_img/images/cbA02.png',
      success() {
        setTimeout(function () {
          that.shareActionHT();
        }, 700)


      },
      cancel: function (res) {
        alert('你没有分享给朋友');
      },
      fail: function (res) {
        alert(JSON.stringify(res));
      }
    });
    wx.error(function (res) {
      alert(res.errMsg);  //打印错误消息。及把 debug:false,设置为debug:true就可以直接在网页上看到弹出的错误提示
    });

  })
})

5、分析
a 主要在成功分享成功之后 需要再通知后台 分享已经成功,后台主要是为了给他添加分享之后的积分,我在methods事件中这里定义了一个函数,以便调取使用。
shareActionHT() {
  this.$api.deviceShare().then((ret) => {

    if(ret.status==200){
      alert(ret.data.message);
    }else {
      alert(ret.data.message);
    }
  })
}
但是 在调取该函数时一直没有执行,最后 设置一个延时器,最后通知成功,主要原因是 分享成功之后 和 通知后台 他们是属于同步执行,添加延时器 可以进行执行,
这一点是非常的重要。
b 还有就是 分享成功之后需要再朋友圈中显示提前准备好的图片,而不是自带的默认的图片,
imgUrl:''中要重新添加对应的图片。




原文地址:https://www.cnblogs.com/yangxuanxuan/p/11081410.html