1.微信分享接口的开发分几个步骤
a.得到ticket
b.根据ticket和url(#号后不要)得到signature,nonceStr,timestamp
c.根据得到的signature,nonceStr,timestamp 和appId 去通过config接口注入权限验证配置
d.通过ws.ready去实现分享接口,接口名称参考http://mp.weixin.qq.com/wiki/11/74ad127cc054f6b80759c40f77ec03db.html
官方校验签名网站:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign
示例如下:
a.引入(必要的)<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
· 可异步得到config接口需要的参数,开发的时候将这个改为true
debug : true
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> <script type="text/javascript"> var targetUrl = location.href.split("#")[0]; $.ajax({ url : "logonAction.do?proc=initWeiXin&targetUrl=" + targetUrl, type : "get", datatype : 'html', cache : true, success : function(html) { wx.config({ debug : false,// 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId : eval('(' + html + ')').appId,// 必填,公众号的唯一标识 timestamp : eval('(' + html + ')').timestamp,// 必填,生成签名的时间戳 nonceStr : eval('(' + html + ')').nonceStr,// 必填,生成签名的随机串 signature : eval('(' + html + ')').signature,// 必填,签名, jsApiList : [ // 所有要调用的 API 都要加到这个列表中 'onMenuShareTimeline' ] }); } });
wx.ready(function() { //隐藏分享按钮 //WeixinJSBridge.call('hideOptionMenu'); wx.onMenuShareTimeline({ title: '标题', link: 'https://www.baidu.com', imgUrl: 'https://www.baidu.com/img/bd_logo1.png', success: function () { alert('分享成功'); }, cancel: function () { alert('取消分享'); } }); });
分享结果如下
注意:如果微信弹出 errormsg config invalid signature
,请确保url(#号后不要)的正确性,url和微信中复制链接地址是一样的(#号后不要)