// 注:
|
// 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;
|
}
|