微信分享到朋友圈

上礼拜工作有个需求,

用户使用PC浏览网页时,

可点击把文章分享到朋友圈的功能,

为此我到了微信公众平台查官方文档,

https://mp.weixin.qq.com/wiki

一直认为"微信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上实现的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容