当微信进行自定义分享时,如果标题或描述中有特殊字符,比如双引号 "等就会导致无法进行自定义分享,甚至不显示分享按钮。
解决方式为:
先将标题或描述放到隐藏域中,并且转成html实体,再从隐藏域中获取转义后的标题和描述即可,
注意:不在隐藏里转义为HTML实体也是不可以的
上代码:
<input type="hidden" id="share_title" value="{{ htmlspecialchars($article->title) }}">
<input type="hidden" id="share_desc" value="{{ htmlspecialchars(mb_substr($article->abstract, 0, 36)) }}">
wx.ready(function () {
//从隐藏域取标题和描述,可解决标题和描述中有特殊字符时无法分享的问题
var title = $("#share_title").val();
var desc = $("#share_desc").val();
wx.onMenuShareAppMessage({
title : title,
//title : "{{ htmlspecialchars($article->title) }}", 直接在这转义也不行
desc : desc + "...",
link : "",
imgUrl : "{{ asset($article->img) }}",
success: function () {},
cancel : function () {}
});
});