最近用AJAX调用微信JSSDK自定义分享图标和摘要的时候出现了问题:第一次分享正常:
但从分享链接点开,再次转发分享的时候,一次分享时定义的信息全被抹杀了,又出现了那个恶心的回形针。
原来:微信在进行二次分享后会给该链接自动加上from以及isappinstalled这两个参数证明该链接是二次分享过来的,会导致二次分享进行签名时失效,剩下空荡荡的链接以及白色缩略图,很是恶心。
那就直接把这个尾巴干掉,重定向就是了,laravel 控制器方法先加上两行:
//解决微信二次分享丢失自定义摘要与图标问题。删除微信浏览器添加的“尾巴”
if(strpos(url()->full(),"from")>0){
return redirect(url()->current());
}
测试成功!
用原生PHP的话,在页面顶部这么写就行了:
<?php
//解决微信分享再次分享的问题
$full_rul='http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
//echo $full_rul;
if(strpos($full_rul,"&from")>0) {
$full_rul=substr($full_rul,0,strpos($full_rul,"&from"));
Header("Location: $full_rul");
exit();
}
//from也可能是第一个参数
if(strpos($full_rul,"?from")>0) {
$full_rul=substr($full_rul,0,strpos($full_rul,"?from"));
Header("Location: $full_rul");
exit();
}
///
有关:《网页链接分享到微信朋友圈带图标和摘要的方法》