微信jssdk已无力吐槽
2016-01-23 14:44
393 查看
微信强大的整合能力让企业公众号的开发迅速窜红。尤其是企业须要个性化定制的一些功能。公司在同一时候上线的app和触屏版的应用中,微信分享自然是不可或缺的重要一环。
纵观如今大多数的微信公众号。分享大都是弹出二维码或者干脆直接使用微信右上方的分享功能分享网页链接,对于自己定义分享内容这个功能就显得力不从心了,所以在公司伟大领袖的号召下。我们要自己定义分享内容,分享标题。分享链接。好的。领导的精神已经公布了,接下来该我们发神经了。
拿到微信jssdk开发文档的那一刻我信心百倍的告诉自己。小意思。搞得定(我知道我又想多了)。是的,事情确实没有那么的顺利。測试号的开发进行的坎坎坷坷一切都要归功于开发文档的英明指导,一開始是微信版本太低。接着是绑定安全域名,好easy到了js验证的时候一直报“invalid signature”,细致检查下来原来是当前页面的url一定是要动态获取的。
最终搞定了,简单分享一下开发过程。
1.首先引入jweixin-1.0.0.js文件,这个文件是微信验证签名的运行文件。
2.到官网下载微信提供的签名生成类,这个类须要稍加改造,得到生成ticket的方法,同一时候要注意缓存jsapi_ticket和token。防止频繁请求微信。
3.通过js请求后台得到生成的时间戳,nonceStr和signature。
代码例如以下:“(document).ready(function() {
var inviteLink = “邀请链接”;(document).ready(function() {
var inviteLink = “邀请链接”;
(“#shareContent”).val(inviteLink);
$.ajax({
url: ‘<%=path %>/weixin/myshare.htm?url=’+pathURL,
type: ‘POST’,
dataType: ‘json’,
contentType:”application/json;charset=utf-8”,
data:{},
error: function(){alert(‘Error’);},
success: function(result){
wx.config({
debug: false, // 开启调试模式,调用的全部api的返回值会在clientalert出来,若要查看传入的參数,能够在pc端打开,參数信息会通过log打出。仅在pc端时才会打印。
appId: result.appId, // 必填。公众号的唯一标识
timestamp: result.timestamp, // 必填,生成签名的时间戳
nonceStr: result.nonceStr, // 必填,生成签名的随机串
signature: result.signature,// 必填,签名。见附录1
jsApiList: [
‘checkJsApi’,
‘onMenuShareTimeline’,
‘onMenuShareAppMessage’,
‘onMenuShareQQ’,
‘onMenuShareWeibo’
]
});
wx.ready(function(){
});“
当中jsApiList中是微信提供的分享功能,各自是分享到朋友圈,发送给微信好友,分享到微博和分享到QQ,开发前期能够使用checkJsApi检查公众号是否获取了这些权限。假设没有勿必先获取权限。否则无法正常使用。另外一个须要注意的问题就是在微信内置浏览器的缓存问题。常常困扰验证结果的就是缓存。所以每当进行一次測试之前最好先关闭微信。因缓存造成的麻烦太让人痛苦了。
纵观如今大多数的微信公众号。分享大都是弹出二维码或者干脆直接使用微信右上方的分享功能分享网页链接,对于自己定义分享内容这个功能就显得力不从心了,所以在公司伟大领袖的号召下。我们要自己定义分享内容,分享标题。分享链接。好的。领导的精神已经公布了,接下来该我们发神经了。
拿到微信jssdk开发文档的那一刻我信心百倍的告诉自己。小意思。搞得定(我知道我又想多了)。是的,事情确实没有那么的顺利。測试号的开发进行的坎坎坷坷一切都要归功于开发文档的英明指导,一開始是微信版本太低。接着是绑定安全域名,好easy到了js验证的时候一直报“invalid signature”,细致检查下来原来是当前页面的url一定是要动态获取的。
最终搞定了,简单分享一下开发过程。
1.首先引入jweixin-1.0.0.js文件,这个文件是微信验证签名的运行文件。
2.到官网下载微信提供的签名生成类,这个类须要稍加改造,得到生成ticket的方法,同一时候要注意缓存jsapi_ticket和token。防止频繁请求微信。
3.通过js请求后台得到生成的时间戳,nonceStr和signature。
代码例如以下:“(document).ready(function() {
var inviteLink = “邀请链接”;(document).ready(function() {
var inviteLink = “邀请链接”;
(“#shareContent”).val(inviteLink);
$.ajax({
url: ‘<%=path %>/weixin/myshare.htm?url=’+pathURL,
type: ‘POST’,
dataType: ‘json’,
contentType:”application/json;charset=utf-8”,
data:{},
error: function(){alert(‘Error’);},
success: function(result){
wx.config({
debug: false, // 开启调试模式,调用的全部api的返回值会在clientalert出来,若要查看传入的參数,能够在pc端打开,參数信息会通过log打出。仅在pc端时才会打印。
appId: result.appId, // 必填。公众号的唯一标识
timestamp: result.timestamp, // 必填,生成签名的时间戳
nonceStr: result.nonceStr, // 必填,生成签名的随机串
signature: result.signature,// 必填,签名。见附录1
jsApiList: [
‘checkJsApi’,
‘onMenuShareTimeline’,
‘onMenuShareAppMessage’,
‘onMenuShareQQ’,
‘onMenuShareWeibo’
]
});
wx.ready(function(){
}); wx.error(function(res){ // config信息验证失败会运行error函数 //alert(res); }); } });
});“
当中jsApiList中是微信提供的分享功能,各自是分享到朋友圈,发送给微信好友,分享到微博和分享到QQ,开发前期能够使用checkJsApi检查公众号是否获取了这些权限。假设没有勿必先获取权限。否则无法正常使用。另外一个须要注意的问题就是在微信内置浏览器的缓存问题。常常困扰验证结果的就是缓存。所以每当进行一次測试之前最好先关闭微信。因缓存造成的麻烦太让人痛苦了。
相关文章推荐
- 微信小店调用api代码示例
- 微信企业号开发(2)--建立连接(主动)
- 模拟微信登陆和获取好友信息
- 使用history.replaceState 控制微信返回
- 微信web开发者工具使用
- iOS 微信 音频 视频自动播放
- pointer-events/H5页面在iphone6 plus的微信上出现闪退
- web 微信一些接口说明
- 关于支付(支付宝和微信)
- 仿微信朋友圈回复弹软
- Android AccessibilityService 应用之微信抢红包外挂
- 微信H5页面源码如何看
- 【推荐】微信运营书一箩筐,微信运营手册、微信力量
- 一位腾讯产品的微信公众号运营手册
- java开发微信公众号企业付款开发
- 微信access_token的获取开发示例
- 微信ANDROID客户端-会话速度提升70%的背后
- 模拟微信登录
- 小程序
- 高仿微信朋友圈