官方文档 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
注意要点
- JS域名安全域名;确认 config 中的 appid 与用来获取 jsapi_ticket 的 appid 一致
- checkJsApi检验接口权限
- config 接口的时候传入参数 debug: true 可以开启 debug 模式排查错误
- 分享链接域名一致;确认 url 是页面完整的url(请在当前页面alert(location.href.split(‘#’)[0])确认),包括’http(s)😕/‘部分,以及’?‘后面的 GET 参数部分,但不包括’#'hash后面的部分
- imgUrl图片不能过大
- 检查微信版本,jssdk使用最新版本,避免使用即将废弃的接口。机型导致的问题使用官方demo验证
- 实践发现,通过收藏、公众号菜单、二维码进入分享正常,其他场景分享就是链接现象,可能与微信策略有关。官方回复 “若是点击的是链接形式分享也会是链接形式,若点击的是卡片形式,分享也是卡片形式”
function openShare(data) {
{
// 微信分享
wx && wx.config({
debug: false,
appId: data.app_id,
timestamp: data.timestamp, // 必填,生成签名的时间戳
nonceStr: data.noncestr, // 必填,生成签名的随机串
signature: data.signature, // 必填,签名
jsApiList: [
"checkJsApi",
"onMenuShareWeibo",
"updateTimelineShareData",
"updateAppMessageShareData",
"onMenuShareAppMessage",
"onMenuShareTimeline",
"onMenuShareQQ",
],
});
// 校验接口权限
wx && wx.checkJsApi({
jsApiList: [
"onMenuShareWeibo",
"updateTimelineShareData",
"updateAppMessageShareData",
"onMenuShareAppMessage",
"onMenuShareTimeline",
"onMenuShareQQ",
],
success: function (res) {
console("ok", JSON.stringify(res));
},
error: function (res) {
console("error", res.errMsg);
},
});
/*
分享
title: 标题
link: 点击分享跳转的链接
imgUrl: 分享的img 要在服务器上的
desc: 内容
*/
wx && wx.ready(function () {
console.log("wx ready");
var shareData = {
title: data.title,
desc: data.desc,
link: window.location.href,
imgUrl: data.cover,
success: function () {
console.log("share ok")
}
};
wx.updateAppMessageShareData(shareData); // “分享给朋友”及“分享到QQ”
wx.updateTimelineShareData(shareData); // “分享到朋友圈”及“分享到QQ空间”
wx.onMenuShareWeibo(shareData); // 分享到腾讯微博
wx.onMenuShareTimeline(shareData); // 旧版,分享到朋友圈
wx.onMenuShareAppMessage(shareData); // 旧版,分享给朋友
wx.onMenuShareQQ(shareData); // 旧版,分享给qq
});
wx && wx.error(function (res) {
console("wx error", res.errMsg);
});
}
}