步骤一:绑定域名
先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
备注:登录后可在“开发者中心”查看对应的接口权限。
步骤二:引入JS文件
在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.4.0.js
如需进一步提升服务稳定性,当上述资源不可访问时,可改访问:http://res2.wx.qq.com/open/js/jweixin-1.4.0.js (支持https)。
备注:支持使用 AMD/CMD 标准模块加载方法加载
步骤三:通过config接口注入权限验证配置
步骤四:通过ready接口处理成功验证
步骤五:通过error接口处理失败验证
代码:ps:link不写的话可能导致安卓二次分享失效,url一定要动态获取传参,目前api接口必须使用新老结合,单纯使用新api的话没有效果,只使用旧的在手机上分享失效
代码:
function share(){
//定义分享字段内容
var shareTitle='分享标题'
var shareDesc='分享描述'
var shareImgUrl=shareImg
$.ajax({
type: "POST",
url: headUrl+"wechat/getJsConfig",
contentType: "application/json",
data: JSON.stringify(dataJson),
dataType: "json",
success: function (data) {
if(data.code=='0000'){
var appId =data.data.appId;
var timestamp = data.data.timestamp;
var nonceStr = data.data.nonceStr;
var signature =data.data.signature;
var jsApiList = ["updateAppMessageShareData", 'updateTimelineShareData', 'onMenuShareTimeline', 'onMenuShareAppMessage'];
var testUrl=dataUrl+'?shareInfo='+sessionStorage.getItem('shareInfo')+'&channelCode='+sessionStorage.getItem('channelCode')
//步骤二:通过config接口注入权限验证配置
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: appId, // 必填,公众号的唯一标识,此处填写公众号corpid
timestamp:timestamp, // 必填,生成签名的时间戳
nonceStr: nonceStr, // 必填,生成签名的随机串
signature: signature,// 必填,签名,见附录1
jsApiList: jsApiList // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
//步骤三:通过ready接口处理成功验证
wx.ready(function(){
console.log("分享接口成功注入")
//自定义“分享给朋友”及“分享到QQ”按钮的分享内容
wx.updateAppMessageShareData({
title: shareTitle, // 分享标题
desc: shareDesc, // 分享描述
link:testUrl,
imgUrl: shareImgUrl, // 分享图标
success: function () {
//设置成功
console.log("设置分享给朋友回调成功")
},
fail:function(res){
console.log("设置分享给朋友回调失败,接口调用次数:"+idNumber+",失败原因:"+JSON.stringify(res))
}
});
//自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容
wx.updateTimelineShareData({
title: shareTitle, // 分享标题
desc: shareDesc, // 分享描述
link:testUrl,
imgUrl: shareImgUrl, // 分享图标
success: function () {
//设置成功
console.log("设置分享到朋友圈回调成功,")
},
fail:function(res){
console.log("设置分享给朋友圈回调失败,接口调用次数:"+idNumber+",失败原因:"+JSON.stringify(res))
}
});
wx.onMenuShareTimeline({
title: shareTitle, // 分享标题
desc: shareDesc, // 分享描述
link:testUrl,
imgUrl: shareImgUrl, // 分享图标
success: function () {
//分享成功后的回调
console.log("设置回调成功3")
}
});
wx.onMenuShareAppMessage({
title: shareTitle, // 分享标题
desc: shareDesc, // 分享描述
link:testUrl,
imgUrl: shareImgUrl, // 分享图标
success: function () {
//分享成功后的回调
console.log("设置回调成功4")
}
});
});
//步骤四:通过error接口处理失败验证
wx.error(function(data){
var resStr = "签名信息验证失败:"+JSON.stringify(data);
console.log(resStr)
});
}else{
console.log("获取微信接口调用参数错误,请刷新或重新进入页面!");
}
}
});
}
PS:微信公众号网页开发文档里面提到, ‘onMenuShareTimeline’, 'onMenuShareAppMessage’这两个api即将废弃,需使用最新的api也就是前面两个,但是在开发以及测试过程中,如果把后面两个去掉的话分享设置不管在什么环境都是失败的,所以只好把这两个加上了,一直不知道是什么原因,官方也没有提供反馈和提问的地方,如有大佬知道原因的话,还请告知,感激不尽。
2019





