// 注: // 1、微信不支持分享回调,分享统计使用分享链接传参,被分享用户点击后进行分享统计; // 2、入口为链接的用户,分享只能分享链接 import wx from 'weixin-js-sdk'; import MG from '../middleGround/WebMiddleGroundApi'; import config from '@/assets/js/config'; export function shareJs(jssdk, options) { wx.config({ debug: false, //是否开启调试功能,这里关闭! appId: jssdk.appId, //appid timestamp: parseInt(jssdk.timestamp), //时间戳 nonceStr: jssdk.nonceStr, //生成签名的随机字符串 signature: jssdk.signature, //签名 jsApiList: ['updateAppMessageShareData', 'updateTimelineShareData'], }); var defaults = { title: '分享的标题', desc: '分享的描述', link: '', //分享页面地址,不能为空,这里可以传递参数!!!!!!! imgUrl: 'https://tup.iheima.com/sport.png', //分享是封面图片,不能为空 success: function () { }, //分享成功触发 cancel: function () { }, //分享取消触发,需要时可以调用 }; // 合并对象,后面的替代前面的! options = Object.assign({}, defaults, options); wx.ready(function () { var thatopts = options; // 分享到朋友圈 wx.updateTimelineShareData({ title: thatopts.title, // 分享标题 desc: thatopts.desc, // 分享描述 link: thatopts.link, // 分享链接 imgUrl: thatopts.imgUrl, // 分享图标 success: function () { console.log('成功'); // shareNewJobWithApiNewEvent(); }, cancel: function () { console.log('分享失败'); }, }); // 分享给朋友 wx.updateAppMessageShareData({ title: thatopts.title, // 分享标题 desc: thatopts.desc, // 分享描述 link: thatopts.link, // 分享链接 imgUrl: thatopts.imgUrl, // 分享图标 success: function () { console.log('成功'); // shareNewJobWithApiNewEvent(); }, cancel: function () { console.log('分享失败'); }, }); }); wx.error((err) => { console.log(err); }); } export function getJsdkAndProduct(val, shareUrl) { const shareObj = {}; shareObj.title = val.name; shareObj.desc = val.description; shareObj.imgUrl = val.icon; shareObj.link = shareUrl; const data = { appRefCode: config.appRefCode, url: window.location.href.split('#')[0], }; MG.app.getWeChatApiSign(data).then((res) => { shareJs(res, shareObj); }); } export function shareNewJobWithApiNewEvent(appRefCode, id) { const data = { appRefCode: appRefCode, type: 'View', sysType: 'App', data: '', event: 'shareCount', productId: id, }; MG.job.newJobWithApiNewEvent(data).then((res) => { if (res) { window.location.href = urlDelP(location.href, 'key'); } }); } function urlDelP(url, name) { var urlArr = url.split('?'); if (urlArr.length > 1 && urlArr[1].indexOf(name) > -1) { var query = urlArr[1]; var obj = {}; var arr = query.split('&'); for (var i = 0; i < arr.length; i++) { arr[i] = arr[i].split('='); obj[arr[i][0]] = arr[i][1]; } delete obj[name]; // eslint-disable-next-line var urlte = urlArr[0] + '?' + JSON.stringify(obj).replace(/[\"\{\}]/g, '').replace(/\:/g, '=').replace(/\,/g, '&'); return urlte; } else { return url; } } export function getSharekey(url) { let obj = {}; let urlStr = url.split('?')[1]; if (url && urlStr) { let paramsArr = urlStr.split('&'); for (let i = 0, len = paramsArr.length; i < len; i++) { let arr = paramsArr[i].split('='); obj[arr[0]] = arr[1]; } } return obj; }