做android 的分享页面,发现分享从客户端分享到微信是正常的,可以看到缩略图,名称和描述,可在微信里再次打开通过微信分享时,就只出现了链接地址,也没有缩略图,无奈,被老板逼这,自己研究了两天中与给弄出来了,特写此文,纪念逝去的两天:

微信内部浏览器自带分享功能,这要求我们要调用微信的APi进行操作!

通过看文档,发现首先要拿到

>  appId: '',
   timestamp:
   nonceStr:,
   signature:,

于是就搜索与此有关的资料为了保证数据的安全性,就把对应的代码放到了后台:

代码可移步到:后台获取微信分享签名

首先你要在微信的基本配置里配置一下服务器的IP,不然会拿不到access——token ,提示IP非法
这里写图片描述

第二步就是Js代码了

首先要引入微信的js

 <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>

调用代码如下

$ (function(){ //获取本页面连接,生成签名需要 var url =location.href.split('#')[0]; $.ajax({ url: "你的域名/weixin/sign?url="+encodeURIComponent(url), //你获取签名的接口 type: "GET", async:true, cache: false, dataType: "json", success: function(data){ var da=data; console.log(da.data.signature); wx.config({ debug: true, //调试模式 appId: 'wx97acfdc52e5239ef', timestamp:da.data.timestamp, nonceStr:da.data.nonceStr, signature:da.data.signature, jsApiList: [ 'onMenuShareTimeline', 'onMenuShareAppMessage'] }); }, error: function() { console.log('ajax request failed!!!!'); return; } }); wx.ready(function () { // wx.checkJsApi({ // jsApiList: [ // 'onMenuShareTimeline', // 'onMenuShareAppMessage' // ], // success: function (res) { // console.log(res.errMsg); // } // }); // var shareData = { title: "资讯消息", desc: sharename, link: url, imgUrl: shareimg }; wx.onMenuShareAppMessage(shareData); wx.onMenuShareTimeline(shareData); }); wx.error(function (res) { console.log(res.errMsg+"错误信息"); }); });

###需要注意的是一下情况可能引起非法签名

这里写图片描述

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐