jssdk分享链接失效(已解决)

1,394 阅读3分钟

今天在配置jssdk的时候发生了分享链接失效的问题; 下面尝试了几种解决办法:

失败多次

考虑到访问链接总是平台主页,就怀疑是对接后端接口的url链接发生了问题

image.png 尝试更改后发现,此方法只改变后端返回的url地址(如下图),此处更改并没有造成多大影响

image.png

既然如上所述,返回url不同,那是不是可以把返回的url放在分享的link里;

image.png 在此我配置了分享的link,页面果然有反应了:

image.png

image.png 如上两张图,此处配置的link已经和后端返回的url一致。

此时标题和图片描述等已经发生了变化:

image.png 分享到聊天的小卡片也发生了变化:

image.png

但是当我们点击卡片,想访问这个企业的时候,我们又进入了平台首页。

因此我再次查阅jssdk文档,得到了如下信息:

image.png

根据图中指示,我再次调整了我的代码:

image.png 为了方便查看,我把结果log打印出来了:

image.png 问题不大,让我们再次从微信里分享的卡片进入一次,很不幸,我又一次来到了平台首页;

此时我复制了该页面链接,我发现不管是哪个企业的页面链接都是平台首页,是不是我修改了这个链接,就能如愿进入企业主页了呢?

image.png 我通过 location.replace() 方法加载一个新的页面来替换当前页面,页面路径就是后端返回的url, 再次复制当前页面链接,我依然得到的是平台首页链接,点击卡片进入的还是平台首页。

进入招租页面复制链接,发现是可以复制链接的,下面我就把该页面的url写死成招租页面的url

image.png 该链接域名或路径也与当前页面对应的公众号JS安全域名一致

image.png link确实发生了改变,但是我们点击卡片时,还是进入了平台首页,由此我们大概可以得出,修改这个link是无法改变卡片点击进入的页面的。

再次检查代码,发现我们是在页面onLoad的时候才配置的jssdk,对比了正常页面,我将这个函数放在了onShow里。

image.png 再次尝试,依然失败。

仔细观察代码后发现,link始终进入的是平台主页,那把分享描述也改成window.location.href打出来看看

image.png 结果并没有什么不同,依然是当前页面的路径

image.png 分享到聊天页面查看描述也确实是当前页面的url

image.png 基本上可以确定,jssdk配置是没有问题的。

那是不是因为全局的函数影响了他首次进入的路径,我决定从全局定义的函数找问题,先将App.vue里面的函数都注释了。

结果并没有影响他再次进入首页。

再次查阅文档,发现是不是我调用了过时的接口?

image.png 于是我把我的代码改成了updateAppMessageShareData

image.png 结果依然没有发生任何的改变

回到最初的思路上,我对link进行了一次拼接

image.png 结果依然失败

有没有可能link是正确的,但是进入到平台的时候,受别的东西影响了,而再跳到首页呢?

image.png 因此我将没有openid的判断进行了注释,再次进行检验

image.png 结果依然失败

再次查找解决办法,可能是hash模式下,微信把我#号后的链接都切掉了的原因,我再次拼接了我要访问的link

image.png 依然失败

最终成功

再次尝试解决办法,在static目录下创建了一个html/redirect.html文件中转,重定向当前页面路径,在html文件中写入如下内容

image.png 再在页面中进行如下处理

image.png 奇迹发生了,我终于进入了企业主页。