/** obj格式
var obj = {
appId: '',
timestamp: '',
nonceStr: '',
signature: '',
infor: {
title: '',
desc: '',
link: '',
imgUrl: ''
}
}
*/
var es = [];
$('script').each(function () {
var esSrc = $(this).attr('src') || '';
es.push(esSrc);
});
var head = document.querySelectorAll('head')[0],
wxScript = document.createElement('script');
wxScript.type = 'text/javascript';
wxScript.addEventListener('load', onScriptLoad);
var ua = navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == 'micromessenger') {
//console.log("微信");
//alert("微信");
wxScript.src = 'http://res.wx.qq.com/open/js/jweixin-1.2.0.js';
} else if (ua.match(/QQ/i) == 'qq') {
//console.log("QQ");
//alert("QQ");
wxScript.src = 'http://qzonestyle.gtimg.cn/qzone/qzact/common/share/share.js';
}
head.appendChild(wxScript);
var toShareObj = {};
toShareObj.infor = {};
toShareObj.infor.title = '';
toShareObj.infor.desc = '';
toShareObj.infor.imgUrl = '';
function ramInfor(str, type, img) {
toShareObj.infor.imgUrl = img || '默认图片的地址';
$.ajax({
type: 'get',
url: 'config接口',
cache: false,//不缓存ajax
dataType: 'json',
data: {
url: location.href.split('#')[0]
},
success: function (json) {
console.log(json)
toShareObj.appId = json.appId;
toShareObj.timestamp = json.timestamp;
toShareObj.nonceStr = json.nonceStr;
toShareObj.signature = json.signature;
toShareObj.infor.link = window.location.href;
//js判断微信和QQ
if (ua.match(/MicroMessenger/i) == 'micromessenger') {
//console.log(“微信”);
wxShare(toShareObj);
} else if (ua.match(/QQ/i) == 'qq') {
//console.log(“QQ”);
qqShare(toShareObj)
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
/*错误信息处理*/
console.log('XMLHttpRequest:' + XMLHttpRequest);
console.log('textStatus:' + textStatus);
console.log('errorThrown:' + errorThrown);
}
});
}
//判断script是否加载完成
function onScriptLoad(e) {
// alert('onScriptLoad');
e = e || window.event;
var wxScriptState = e.target || e.srcElement;
//加载完成
if (/loaded|complete|undefined/.test(wxScript.readyState)) {
wxScriptState.removeEventListener('load', onScriptLoad);
}
}
//微信分享api
function wxShare(obj) {
// alert('obj');
var objAppId = obj.appId, objTimestamp = obj.timestamp, objNonceStr = obj.nonceStr, objSignature = obj.signature;
var objTitle = obj.infor.title, objDesc = obj.infor.desc, objLink = obj.infor.link, objImgUrl = obj.infor.imgUrl;
console.log(obj)
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: objAppId, // 必填,公众号的唯一标识
timestamp: objTimestamp, // 必填,生成签名的时间戳
nonceStr: objNonceStr, // 必填,生成签名的随机串
signature: objSignature,// 必填,签名,见附录1
jsApiList: [// 必填,需要使用的JS接口列表,所有JS接口列表见附录2
'onMenuShareTimeline',
'onMenuShareAppMessage',
'onMenuShareQQ',
'onMenuShareQZone'
]
});
wx.ready(function () {
//config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,
//config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。
//对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
//分享到朋友圈
wx.onMenuShareTimeline({
title: objTitle, // 分享标题
link: objLink, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: objImgUrl, // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
},
cancel: function () {
// 用户取消分享后执行的回调函数
}
});
//分享给朋友
wx.onMenuShareAppMessage({
title: objTitle, // 分享标题
desc: objDesc, // 分享描述
link: objLink, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: objImgUrl, // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
},
cancel: function () {
// 用户取消分享后执行的回调函数
}
});
//分享到QQ
wx.onMenuShareQQ({
title: objTitle, // 分享标题
desc: objDesc, // 分享描述
link: objLink, // 分享链接
imgUrl: objImgUrl, // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
},
cancel: function () {
// 用户取消分享后执行的回调函数
}
});
//分享到QQ空间
wx.onMenuShareQZone({
title: objTitle, // 分享标题
desc: objDesc, // 分享描述
link: objLink, // 分享链接
imgUrl: objImgUrl, // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
},
cancel: function () {
// 用户取消分享后执行的回调函数
}
});
});
wx.error(function (res) {
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
});
}
//qq分享api
function qqShare(obj) {
var objAppId = obj.appId, objTimestamp = obj.timestamp, objNonceStr = obj.nonceStr, objSignature = obj.signature;
var objTitle = obj.infor.title, objDesc = obj.infor.desc, objLink = obj.infor.link, objImgUrl = obj.infor.imgUrl;
setShareInfo({
title: objTitle,
summary: objDesc,
pic: objImgUrl,
url: objLink,
WXconfig: {
swapTitleInWX: false,// 是否标题内容互换(仅朋友圈,因朋友圈内只显示标题)
appId: objAppId,
timestamp: objTimestamp,
nonceStr: objNonceStr,
signature: objSignature
}
});
}
分享微信和qq
最新推荐文章于 2020-05-12 16:51:15 发布