微信二次分享

引入sdk
<script src="https://xxxx/xxx/jweixin-1.6.0.js"></script>
  var ctx = window;
  var param = {};
  ctx.__mm_getWeixinSign = function(resp){
    if (resp.ec != 200 && param.debug){
        alert('get weixin sign failed: ' + resp.em);
        return;
    }
    var sign = resp.data.sign;
    // debug,jsApiList,callback
    wx.config({
        debug: param.debug, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
        appId: sign.appid, // 必填,公众号的唯一标识
        timestamp: sign.timestamp , // 必填,生成签名的时间戳
        nonceStr: sign.noncestr, // 必填,生成签名的随机串
        signature: sign.signature,// 必填,签名,见附录1
        jsApiList: param.jsApiList // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
    });
    var _shareObj = param.share;
    if (!_shareObj) return;
    wx.ready(function() {
      var com_share = {
          title: _shareObj.title, // 分享标题
          desc: _shareObj.text,   // 分享描述
          link: _shareObj.url,    // 分享链接
          imgUrl: _shareObj.pic,  // 分享图标
          success: _shareObj.callback,
          cancel: function () {
              // 用户取消分享后执行的回调函数
          }
      };

      var mmComWx={
          weixin:'onMenuShareTimeline',// 分享到朋友圈
          weixin_friend:'onMenuShareAppMessage',// 分享给微信朋友
          qq:'onMenuShareQQ',// 分享到QQ
          qzone:'onMenuShareQZone'// 分享到QQ空间
      };

      for (var k in mmComWx) {
          if (_shareObj.configs && _shareObj.configs[k]) {
              var share_config = _shareObj.configs[k];
              var tit = (k == 'weixin') ? share_config.text : share_config.title;
              wx[mmComWx[k]]({
                  title: tit, // 分享标题
                  desc: share_config.text,   // 分享描述
                  link: share_config.url,    // 分享链接
                  imgUrl: share_config.pic,  // 分享图标
                  success: share_config.callback,
                  cancel: function () {
                      // 用户取消分享后执行的回调函数
                  }
              });
          }else{
              wx[mmComWx[k]](com_share);
          }
      }
      param.callback && param.callback();
    });
  };

  var index = {
    setConfig: function(_param, _callback) {
      var ua = navigator.userAgent.toLowerCase();
      if (ua.match(/MicroMessenger/i) != "micromessenger") {
          return;
      }
      var url = "https://xxx/api/weixin/share?callback=__mm_getWeixinSign&url="+ encodeURIComponent(location.href);

      // 创建script标签,设置其属性
      var script = document.createElement('script');
      script.setAttribute('src', url);
      param = _param;
      if (_callback) {
          param.callback = _callback;
      }
      // 把script标签加入head,此时调用开始
      document.getElementsByTagName('head')[0].appendChild(script);
    }
 };

 export const wxShare = () => {
	 return index;
 }
//微信二次分享
import {wxShare} from '../components/wxshare/index'
export const initWXShare = () => {
    const title = '',
          text = '',
          pic = '',
          url = location.href;
    const share = wxShare();
    share.setConfig({
      debug: false, // 在生产环境设置为false,在开发环境可以检测是否调用成功
      jsApiList: ['onMenuShareAppMessage','onMenuShareTimeline','updateAppMessageShareData','updateTimelineShareData'],
      share: {
        title: title,//分享标题
        text: text,//分享副标题
        pic: pic,//分享Card中的缩略图
        url: url,//分享链接
        configs: {
            'weixin': {
                title, text, url: `${url}&src=weixin`, pic, share_type: 'web'
            },
            'weixin_friend': { 
                title, text, url: `${url}&src=friend`, pic, share_type: "web"   //类型,可选值为web | image,默认不传为web分享。
            },
            'qzone': { 
                title, text, url: `${url}&src=qzone`, pic, share_type: "web"  // 分享的类型,可选值为web | image,默认不传为web分享。
            },
            'qq': { 
                title, text, url: `${url}&src=qq`, pic, share_type: "web"   // 型,可选值为web | image,默认不传为web分享。
            },
            'sina': { 
                title, text, url: `${url}&src=sina`, pic, share_type: "web"   // 型,可选值为web | image,默认不传为web分享。
            }
        }
      }
    })
}
原文地址:https://www.cnblogs.com/sybboy/p/13235564.html