关于微信分享,其实我写过一篇类似的文章 h5 微信分享知识点 ,而且本人对微信生态体系(公众号、小程序)经验也很丰富,以为自己不会再 踩微信的坑 。
没想到最近两年没有对接微信,又再一次被坑了,再此记录一下吸取教训。
我们简单串一下流程,方便不太懂的小伙伴理解?, 知道的小伙伴可以跳过,坑点在最下边
授权
关于授权详情,大家可以去 微信公众号 :h5获取code,授权等问题 了解具体的配置。
//这条链接主要是通过重定向,获取到**code**,然后与后端交互,获取信息方便执行wx.config
https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${local}&response_type=code&scope=snsapi_base&state=STATE&connect_redirect=1#wechat_redirect
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: config.appId, // 必填,企业号的唯一标识,此处填写企业号corpid
timestamp: config.timestamp, // 必填,生成签名的时间戳
nonceStr: config.nonceStr, // 必填,生成签名的随机串
signature: config.signature,// 必填,签名,见附录1
jsApiList: [
//分享朋友圈
'updateTimelineShareData',
//updateAppMessageShareData
'updateAppMessageShareData',
// 'onMenuShareTimeline',
// 'onMenuShareAppMessage',
'onMenuShareQQ',
'onMenuShareQZone',
]
});
新分享方法
onMenuShareAppMessage 改为 updateAppMessageShareData
onMenuShareTimeline 改为 updateTimelineShareData
1.2.0以前用onMenuShareAppMessage、onMenuShareTimeline
1.4.0以后用updateAppMessageShareData、updateTimelineShareData
执行wx.ready
执行分享方法
/**
* 变量注释,这几个字段不要改,是微信的规定的,值随便赋值
* title : 标题
* desc:段落描述
* link:打开的地址
* imgUrl:图片(缩略图36kb以下)
*/
const {title,desc,link,imgUrl} = this.info
wx.ready(function(){
wx.updateTimelineShareData({
title,
desc,
link,
imgUrl,
trigger: function (res) {
// alert('用户点击分享到朋友圈');
},
success: function (res) {
// alert('已分享');
},
cancel: function (res) {
// alert('已取消');
},
fail: function (res) {
alert(JSON.stringify(res));
}
});
});
分享没有预期效果(坑点)
分享效果(大家应该都知道),我就不截图了,防止侵权之类的。
本来对分享方法进行了调用,按理title、desc和图片应该是自己配置的效果,但是大家会发现只是一个 url地址 ,并没有达到预期效果
打开debug 模式,方法也都是ok,证明都执行成功了,那为啥还是不行呢 (就是在这踩的坑)
后来突然想到自己很久前好像也遇到过这个问题,只是当初很顺利就解决了,就没有留意,这次终于长教训了。
首次开发后,应将该 地址(url)先分享到公众号 (随便哪个都行),然后从此公众号的地址进入, 再分享 就可以达到预期效果了
版权声明:本文为qq_38998250原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。