微信中网页分享开发遇到的坑

本文不讲解整体的实现过程,讲实现过程的文章网上有很多,这里就不累述了,我只说说开发过程中遇到的坑,我觉得80%第一次开发微信分享的人应该都遇到过。

1. 官网下载的sample压缩包怎样使用

在官网会下载jssdk-php的sample,里面有四个文件

不要觉得文件多头疼,如果稍微耐心下看看这四个文件就知道怎样用了

sample是入口,你在js中ajax调用的php 写它就对了

jssdk是真正的功能实现,包括你可能同样迷茫的access的获取等,jssdk是require在sample中的,所以不用担心它的调用

然后两个json是为了储存jssdk中获得的token和ticket,因为access_token有获取次数的限制,所以我们获取之后一般会储存起来,官网给的例子就是放到了json中

2. "errMsg":"config:invalid signature"

这个错误真的是让人想掀桌(╯‵□′)╯︵┻━┻,网上的解决方法有很多,具体分类请看https://www.yudouyudou.com/jiaochengheji/wangzhanjianshe/1237.html,这里我着重讲一下因为url报错的问题,虽然知道错误原因是因为sha1时传入的url不正确,可是我在js中无论怎么改都有这个报错,后来发现问题出在官方给的php里。

首先下面是我js的调用,很普通

        $.ajax({
            url: "../jssdk-php/sample.php?" + location.href.split('#')[0],  //通过location获取当前网址,
            type: "get",
            success: function(data) {
                callback(data);
            }
        })

然后官网给的php是默认你的h5 js等也是写在php中的,所以它在获取这本身当然没问题,官方给出的代码如下

$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
$url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

可是,这样获取到的url是你在ajax的url中写的整体路径,也就是说是包含调用php那部分的路径,使用这个url当然会报错。

得知这点之后,修改方案也简单了,只需要把?后我们需要分享的路径取出来就好了

$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
$url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$url = substr($url,strpos($url,'?')+1);

这个困扰了我好几个小时的BUG总算解决了,也是自己不认真

3. 分享时图片不能正常显示

正常分享出去的链接,右侧是自己定义的图片,可是当时无论怎样都无法显示,只有分享方在自己手机里可以看见

仔细检查之后也没有BUG,是什么原因导致图片失效的呢?

答案是,坑爹的屏蔽!!!!你分享出去的链接微信都会有关键字检查,例如我上图的链接中,邀请两个字就是禁词,这才导致图片不能正常显示。

改法也有很多,可以换词,也可以用繁体字,亲测有效

暂时只有这么多,有什么错误或者遗漏,欢迎大神补充讨论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值