m-share.js
Version:
h5页面分享组件、支持分享到微信、朋友圈、qq、QQ空间、QQ好友。
80 lines (76 loc) • 1.98 kB
JavaScript
import util from "./util.js";
const wxJsSdkUrl = "//res.wx.qq.com/open/js/jweixin-1.2.0.js";
const setShareInfo = (type, info) => {
switch (type) {
case "wx":
wx.onMenuShareAppMessage(info); // 设置分享到微信好友内容
break;
case "wxline":
wx.onMenuShareTimeline(info); // 设置分享到微信朋友圈内容
break;
case "qq":
wx.onMenuShareQQ(info); // 设置分享到微信好友内容
break;
case "qzone":
wx.onMenuShareQZone(info); // 设置分享到qq空间
break;
}
};
let isConfig = false;
export default (types, config) => {
const wxConfig = config.wx;
const doSet = () => {
const _wxConfig = Object.assign(
{
jsApiList: [
"onMenuShareTimeline",
"onMenuShareAppMessage",
"onMenuShareQQ",
"onMenuShareQZone",
"onMenuShareWeibo",
],
},
wxConfig
);
if (!isConfig) {
wx.config(_wxConfig);
isConfig = true;
}
wx.ready(() => {
try {
types.forEach((item) => {
const _info = {
title:
(config.infoMap &&
config.infoMap[item] &&
config.infoMap[item].title) ||
config.title,
desc:
(config.infoMap &&
config.infoMap[item] &&
config.infoMap[item].desc) ||
config.desc,
link:
(config.infoMap &&
config.infoMap[item] &&
config.infoMap[item].link) ||
config.link,
imgUrl:
(config.infoMap &&
config.infoMap[item] &&
config.infoMap[item].imgUrl) ||
config.imgUrl,
};
setShareInfo(item, _info);
});
} catch (e) {}
});
};
if (window.wx) {
doSet();
} else {
util.loadScript(wxJsSdkUrl, () => {
doSet();
});
}
};