今天在配置jssdk的时候发生了分享链接失效的问题; 下面尝试了几种解决办法:
失败多次
考虑到访问链接总是平台主页,就怀疑是对接后端接口的url链接发生了问题
尝试更改后发现,此方法只改变后端返回的url地址(如下图),此处更改并没有造成多大影响
既然如上所述,返回url不同,那是不是可以把返回的url放在分享的link里;
在此我配置了分享的link,页面果然有反应了:
如上两张图,此处配置的link已经和后端返回的url一致。
此时标题和图片描述等已经发生了变化:
分享到聊天的小卡片也发生了变化:
但是当我们点击卡片,想访问这个企业的时候,我们又进入了平台首页。
因此我再次查阅jssdk文档,得到了如下信息:
根据图中指示,我再次调整了我的代码:
为了方便查看,我把结果log打印出来了:
问题不大,让我们再次从微信里分享的卡片进入一次,很不幸,我又一次来到了平台首页;
此时我复制了该页面链接,我发现不管是哪个企业的页面链接都是平台首页,是不是我修改了这个链接,就能如愿进入企业主页了呢?
我通过
location.replace() 方法加载一个新的页面来替换当前页面,页面路径就是后端返回的url,
再次复制当前页面链接,我依然得到的是平台首页链接,点击卡片进入的还是平台首页。
进入招租页面复制链接,发现是可以复制链接的,下面我就把该页面的url写死成招租页面的url
该链接域名或路径也与当前页面对应的公众号JS安全域名一致
link确实发生了改变,但是我们点击卡片时,还是进入了平台首页,由此我们大概可以得出,修改这个link是无法改变卡片点击进入的页面的。
再次检查代码,发现我们是在页面onLoad的时候才配置的jssdk,对比了正常页面,我将这个函数放在了onShow里。
再次尝试,依然失败。
仔细观察代码后发现,link始终进入的是平台主页,那把分享描述也改成window.location.href打出来看看
结果并没有什么不同,依然是当前页面的路径
分享到聊天页面查看描述也确实是当前页面的url
基本上可以确定,jssdk配置是没有问题的。
那是不是因为全局的函数影响了他首次进入的路径,我决定从全局定义的函数找问题,先将App.vue里面的函数都注释了。
结果并没有影响他再次进入首页。
再次查阅文档,发现是不是我调用了过时的接口?
于是我把我的代码改成了
updateAppMessageShareData
结果依然没有发生任何的改变
回到最初的思路上,我对link进行了一次拼接
结果依然失败
有没有可能link是正确的,但是进入到平台的时候,受别的东西影响了,而再跳到首页呢?
因此我将没有openid的判断进行了注释,再次进行检验
结果依然失败
再次查找解决办法,可能是hash模式下,微信把我#号后的链接都切掉了的原因,我再次拼接了我要访问的link
依然失败
最终成功
再次尝试解决办法,在static目录下创建了一个html/redirect.html文件中转,重定向当前页面路径,在html文件中写入如下内容
再在页面中进行如下处理
奇迹发生了,我终于进入了企业主页。