JS-SDK分享网页到微信遇到的坑
发布日期:2021-10-03 12:40:15
浏览次数:8
分类:技术文章
本文共 2002 字,大约阅读时间需要 6 分钟。
现在开发大多都需要用到微信分享,推广宣传APP做得有多牛逼,然鹅,微信分享不是简单的越塔五杀就能搞定的,需要前后台的协同才能打死这个野怪,开发中遇到的重大问题是一直提示config:invalid signature
,先来说说大体开发流程,再说说这问题是怎么解决的:
1、绑定域名
域名必须ICP备案,在微信公众平台的js域名接口处绑定该域名。注意:绑定的域名或者路径不允许有下划线,因为公司的项目名带有下划线,而项目名已经被APP之前版本引用,所以不能通过修改项目名解决,于是想了另外一个办法:绑定一个和应用同级目录的路径,把需要分享的网页放到这个路径下面来访问,这时候会存在一个问题:分享页面找不到一些项目资源,这时候可以通过修改页面的相对路径来解决。2、绑定域名的后台生成签名信息,包括appId,timestamp,noncestr,signature,校验签名信息是否有误地址:,如果signature一致则说明签名无误。
3、分享的网页引入JS文件
http协议域名引用微信接口地址 , https协议域名引用微信接口地址 经测试两个地址都可以正常分享。4、通过config接口注入权限验证配置
5、通过ready接口处理成功验证
页面拿到服务器返回的签名信息后,调用微信的wx.ready({})方法接口实现分享功能,代码如下(这段代码放在标签最下面):
wx.ready(function(){ // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。 wx.onMenuShareTimeline({ title: shareTitle, // 分享标题 desc: shareDesc, // 分享描述 link: url, // 分享链接 imgUrl: shareImgUrl, // 分享图标 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 } }); wx.onMenuShareAppMessage({ title: shareTitle, // 分享标题 desc: shareDesc, // 分享描述 link: url, // 分享链接 imgUrl: shareImgUrl, // 分享图标 type: '', // 分享类型,music、video或link,不填默认为link dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 } }); });
坑:
1、签名错误:这个可以把后台服务器生成的签名信息放到地址上面去校验signature是否一致,后台生成签名的方法在网上很多,在这里就不多说了。 2、确认签名没错后,仍然弹框config:invalid signature,100%是URL有问题,这里的url就是分享页面的url,有三个地方必须完全一致, 1)var url = location.href; 2)后台接收到的url; 3) link: url; 这三个url必须一致,后台接收到的url会自动把参数拼接字符&转义成&amb;,所以要替换成&,确保和前端的URL一致即可。至此,问题解决!啦啦啦
转载地址:https://blog.csdn.net/kookkj/article/details/78591224 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月10日 06时46分12秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
C#中@符号的作用
2019-04-27
C#中$符号的作用
2019-04-27
Mac装windows系统后如何更换触控板设置
2019-04-27
Windows系统下如何设置软件的快捷键
2019-04-27
语言中的溢出
2019-04-27
Unity中实现获取一段时间内移动设备声音的最大音量
2019-04-27
springboot的初始化启动过程
2019-04-27
关于spring bean 生命周期代码详解-产生到消亡
2019-04-27
spring 启动之全过程 源码解析
2019-04-27
Spring AOP 原理
2019-04-27
mysql 分库分表分区 动态扩容 总结
2019-04-27
分布式事务 四种方案
2019-04-27
redis和spring整合
2019-04-27
iis6 和iis7s上整个网站重定向
2019-04-27
iis7 url重写和重定向
2021-06-30
navicat工具来将SQL Server数据迁移到MySQL
2021-06-30
微信公众号从头开发(接入与消息)
2021-06-30
端口占用 杀死进程
2021-06-30
XStream xml与javabean之间的互转
2021-06-30