上礼拜工作有个需求,
用户使用PC浏览网页时,
可点击把文章分享到朋友圈的功能,
为此我到了微信公众平台查官方文档,
一直认为"微信JS-SDK说明文档",就是我要的文档,
依照了说明:
先用appId及appSecret获取access_token,
再用access_token获取jsapi_ticket,
将jsapi_ticket、nonceStr、timestamp及要分享的url用sha1产生signature,
接着在js中加入下面代码(代码取自官方提供的范例)
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script>
wx.config({
debug: true,
appId: '自己的appid',
timestamp: '用来产生签名的时间戳',
nonceStr: '用来产生签名的乱数字符串',
signature: '产生的签名',
// 所有要调用的 API 都要加到这个列表中
jsApiList: ['onMenuShareTimeline']
});
weixinShare = function(){
wx.ready(function () {
// 在这里调用 API
wx.onMenuShareTimeline({
title: '我的第一个标题', // 分享标题
link: '我文章的链接', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: '分享图片的链接', // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
},
cancel: function () {
// 用户取消分享后执行的回调函数
}
});
});
}
</script>
在html加上点击事件
<a href="javascript:;" onclick="weixinShare()">share</a>
但调试了快一个星期,
分享的popup视窗就是没有出现,
也没有报错。
上百度搜,很少有人分享怎么解决这个问题,
也很少有人分享遇到这个问题,
我再去看了简书的微信分享功能,
接着找同事小小小小小小抱怨(= =#)这个功能我遇到的情况,
与同事讨论的过程中,突然间我恍然大悟!
凶手就在这些人之中(柯南上身)
原来这是H5的微信分享这是H5的微信分享这是H5的微信分享
(本公司H5代表手机上的web页面)
我崩溃了~~~
微信没有办法像脸书或微博一样,
在网页引用官方js,
用appId调用官方分享服务的接口,
直接分享文章到脸书或微博的网站。
因为微信朋友圈,
是在微信App的一个功能页面,
不是一个网站!不是一个网站!不是一个网站!
所以必须用手机打开微信App,
点击下方的"发现",再点击右上方的扫一扫,
扫qrcode,扫完后,微信app会开启该页面,
用户再点击右上方...的图标,再点击下方分享到朋友圈。
如此才可以把PC上看到的网页分享到朋友圈。
于是我萌了,
根本不需要获取啥access_token或jsapi_ticket(还要全局缓存),
再产生signature来调用分享的接口,
只需要产生要分享网址的qrcode就可以了。
恍然大悟的我立马百度了产生qrcode的jquery插件,
https://github.com/jeromeetienne/jquery-qrcode/
然后在用户点击分享到微信朋友圈图标时,
弹出一个popup,调用产生qrcode的插件产生qrcode,
3分钟完成了在PC上将文章分享到微信朋友圈的功能。
这个让我失眠好多天的需求,解决方式只是产生一个qrcode这么的简单。
完全不需要引用官方的js及调用微信的服务接口,
因为分享到朋友圈是在微信App上实现的,
不是在PC上实现的。