• 微信二次分享


    引入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分享。
                }
            }
          }
        })
    }
  • 相关阅读:
    今天是不是要得瑟那么一下下啦
    今天小小的总结一下最近的小程序中的问题
    敏感词过滤和XML的创建
    【腾讯优测干货分享】安卓专项测试之GPU测试探索
    【腾讯Bugly干货分享】WebVR如此近-three.js的WebVR示例解析
    【腾讯Bugly干货分享】Android动态布局入门及NinePatchChunk解密
    【腾讯Bugly干货分享】基于RxJava的一种MVP实现
    【腾讯Bugly干货分享】动态链接库加载原理及HotFix方案介绍
    【腾讯Bugly干货分享】微信iOS SQLite源码优化实践
    【腾讯Bugly干货分享】移动客户端中高效使用SQLite
  • 原文地址:https://www.cnblogs.com/sybboy/p/13235564.html
Copyright © 2020-2023  润新知