微信的JSSDK分享

原创 燕子666 随笔 前端bug整理 78阅读 2019-04-25 11:17:30 举报

微信的JSSDK自定义分享问题

前两天产品需求我们在webview项目中做一个分享的需求,看了JSSDK的api,发现了很简单的实现方法,

看过之后发现,oh,so easy!然而,事与愿违,我上来就在页面中加了一个按钮,点击事件中调用上面的方法,然而发现,接收到了success的回调函数,但是没有分享的过程(即没有打开朋友圈,亦没有打开选择朋友界面),无奈,各种搜索求助,大家有告诉我说wx.config中的签名不对,或者是分享的链接没有认证。。。,但这都不是根本解决办法,因为调用jssdk的录音功能都能正常使用,最后换了个ios手机本地测试发现,将微信自带的分享按钮暴露出来以后,分享到朋友圈,是可以看到我们定义的内容的,才明白,上面这两个方法,只是自定义分享内容,并不能在页面中自定义一个按钮就调用微信的分享功能。api上又说:请注意,不要有诱导分享等违规行为,对于诱导分享行为将永久回收公众号接口权限,所以没有按钮点击触发微信分享功能的api。

至此,我们了解到ios可以预先自定义分享内容,那么安卓呢,同样试过,都不能生效。(微信有bug???
新方法不行用老方法,发现根本不起作用,根本到不了success回调函数,因为老方法在jssdk 1.4.0中被废弃了。
请注意,原有的 wx.onMenuShareTimeline、wx.onMenuShareAppMessage、wx.onMenuShareQQ、wx.onMenuShareQZone 接口,即将废弃。请尽快迁移使用客户端6.7.2及JSSDK 1.4.0以上版本支持的 wx.updateAppMessageShareData、updateTimelineShareData 接口。

既然出文档了,不应该没有解决办法吧,于是通过度娘,找到了解决办法:

问题:Android 下 updateAppMessageShareData 自定义的分享标题,及描述,缩略图都无法显示。而在 ios 下一切正常。

解决办法如下:
wx.config中的jsApiList补充上要被遗弃的方法:

然后再像JSSDK api中那样定义前两个方法就可以啦,然而后两个方法是即将被遗弃的,所以这是一个现存的JSSDK 的 神奇的 bug

最后附上我的代码:

注意:生成签名的时候,最好用encodeURIComponent()将地址编码一下再传给接口,因为如果window.location.href里面有&后面连接的一些参数,就会被自动截取,从而生成的签名有误,导致JSSDK的方法不能正常使用。

这就是整个的挖坑填坑过程,

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复