|
|
let shareData = {
|
|
|
title: '',
|
|
|
link: '',
|
|
|
desc: '逛',
|
|
|
imgUrl: 'http://static.yohobuy.com/m/v1/img/touch/apple-touch-icon-144x144-precomposed-new.png'
|
|
|
};
|
|
|
|
|
|
let jsApiList = [
|
|
|
'checkJsApi',
|
|
|
'onMenuShareTimeline',
|
|
|
'onMenuShareAppMessage',
|
|
|
'onMenuShareQQ',
|
|
|
'onMenuShareWeibo',
|
|
|
'onMenuShareQZone'
|
|
|
];
|
|
|
|
|
|
function loadScript(url, success) {
|
|
|
const head = document.getElementsByTagName('head')[0];
|
|
|
let script = document.createElement('script');
|
|
|
|
|
|
script.type = 'text/javascript';
|
|
|
script.onload = script.onreadystatechange = function() {
|
|
|
if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete" ) {
|
|
|
success && success();
|
|
|
script.onload = script.onreadystatechange = null;
|
|
|
}
|
|
|
};
|
|
|
script.src= url;
|
|
|
head.appendChild(script);
|
|
|
}
|
|
|
|
|
|
function jsonp(url, data = {}) {
|
|
|
return new Promise((resolve, reject) => {
|
|
|
let JSONP = document.createElement("script");
|
|
|
let query = [];
|
|
|
|
|
|
data.callback = 'jsonCallBack';
|
|
|
Object.keys(data).forEach(key => {
|
|
|
query.push(key + '=' + data[key]);
|
|
|
});
|
|
|
|
|
|
window.jsonCallBack = (result) => {
|
|
|
resolve(result);
|
|
|
};
|
|
|
|
|
|
JSONP.type = "text/javascript";
|
|
|
JSONP.src = `${url}?${query.join('&')}`;
|
|
|
const head = document.getElementsByTagName("head")[0];
|
|
|
head.appendChild(JSONP);
|
|
|
|
|
|
setTimeout(() => {
|
|
|
head.removeChild(JSONP)
|
|
|
}, 500);
|
|
|
})
|
|
|
}
|
|
|
|
|
|
function init(qs) {
|
|
|
if (/QQ/i.test(navigator.userAgent)) {
|
|
|
loadScript('//qzonestyle.gtimg.cn/qzone/qzact/common/share/share.js', function() {
|
|
|
window.setShareInfo && window.setShareInfo({
|
|
|
title: shareData.title,
|
|
|
summary: shareData.desc,
|
|
|
pic: shareData.imgUrl,
|
|
|
url: shareData.link
|
|
|
});
|
|
|
});
|
|
|
}
|
|
|
|
|
|
if (/MicroMessenger/i.test(navigator.userAgent)) {
|
|
|
loadScript('//res.wx.qq.com/open/js/jweixin-1.3.2.js', () => {
|
|
|
jsonp(location.protocol + '//m.yohobuy.com/activity/wechat/share', {
|
|
|
url: location.href
|
|
|
}).then(res => {
|
|
|
if (window.wx) {
|
|
|
window.wx.config({
|
|
|
debug: false,
|
|
|
appId: res.appId,
|
|
|
timestamp: res.timestamp,
|
|
|
nonceStr: res.nonceStr,
|
|
|
signature: res.signature,
|
|
|
jsApiList: jsApiList
|
|
|
});
|
|
|
}
|
|
|
})
|
|
|
});
|
|
|
}
|
|
|
|
|
|
if (qs && qs.share_id) {
|
|
|
jsonp(location.protocol + '//m.yohobuy.com/activity/share', {
|
|
|
shareId: qs.share_id
|
|
|
}).then(res => {
|
|
|
if (res && res.code === 200 && res.data) {
|
|
|
shareData.desc = res.data.content || res.data.title;
|
|
|
shareData.imgUrl = res.data.pic;
|
|
|
shareData.title = res.data.title;
|
|
|
};
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
|
|
|
export default {
|
|
|
init,
|
|
|
setShareInfo(data) {
|
|
|
Object.assign(shareData, data);
|
|
|
|
|
|
window.setShareInfo && window.setShareInfo({
|
|
|
title: shareData.title,
|
|
|
summary: shareData.desc,
|
|
|
pic: shareData.imgUrl,
|
|
|
url: shareData.link || location.href
|
|
|
});
|
|
|
}
|
|
|
} |
...
|
...
|
|