微信网页分享朋友圈

微信公众平台

先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。

1. 引入微信的 js 文件

1
<script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"> </script>

2. config 接口

server 会通过接口把需要的参数传过来

1
2
3
4
5
6
7
8
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,公众号的唯一标识
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名
jsApiList: [] // 必填,需要使用的JS接口列表
});

jsApiList 这一项内把自己需要用到的接口写进去 (参考 微信公众平台 里的附录二

3. ready 接口

1
2
3
wx.ready(function(){
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});

4. 分享到朋友圈

1
2
3
4
5
6
7
8
9
wx.ready(function () {      //需在用户可能点击分享按钮前就先调用
wx.updateTimelineShareData({
title: '', // 分享标题
link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: '', // 分享图标
success: function () {
// 设置成功
}
});

目前这个阶段,微信正在调整其分享功能,处于一个新旧交替的过程

  • 新的微信客户端开始 微信分享 将无法获知用户是否真正完成分享,也就是说 用户取消了分享 或者 成功分享都将走 success 回调

  • 在写分享的过程中发现 新的分享朋友圈接口(updateTimelineShareData),目前在安卓上不起作用,就换回了旧的 js-sdk 以及分享方法(onMenuShareTimeline)。但旧的分享在 iOS 上完全不走回调,即使是 success 也不走。 后来在 segmentFault 上找到了方法:加了 setTimeout 才起作用。微信分享接口分享完成后在某些苹果设备上不能正常执行回调 - 长流哥哥的回答 - SegmentFault 思否

原文作者: dgb8901,yinxing

原文链接: https://www.itwork.club/2018/10/31/wechat-share/

版权声明: 转载请注明出处

为您推荐

体验小程序「简易记账」

关注公众号「特想学英语」

time 简史