微信二次分享
引入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分享。 } } } }) }