jsContent内容存在换行符,导致js处理失败,
解决办法,在后台接口中替换’/r/n’为空,并截取前30位
weiXinJsSdk.setSharcontent(StringUtils.isNotEmpty(data.getProfiles()) ? data.getProfiles().replaceAll("\r\n", “”).substring(0, 30) : “”);
//微信分享
StringBuilder sb = new StringBuilder("https://www.woyaoce.cn/topics/" + codeName + "/");
String s = sb.toString();
WeiXinJsSdk weiXinJsSdk = new WeiXinJsSdk();
String encodeUrl = "";
try {
encodeUrl = URLEncoder.encode(s, "UTF-8");
String url1 = "http://Openapi.woyaoce.cn/WeiXinJsSdk/GetInsSdk?url=" + encodeUrl;
System.out.println(url1);
LinkedHashMap<String, String> map = new LinkedHashMap<>();
map.put("url", encodeUrl);
String ss = HttpClientUtil.doGet("http://Openapi.woyaoce.cn/WeiXinJsSdk/GetInsSdk", map);
weiXinJsSdk = JsonUtils.toBean(ss, WeiXinJsSdk.class);
} catch (Exception e) {
e.printStackTrace();
}
//广告位
AdvInfo advList = advApiService.getAdvInfoById(86380);
if (Objects.nonNull(advList)) {
modelAndView.addObject("advList", advList);
}
weiXinJsSdk.setNowurl(s);
weiXinJsSdk.setSharetitle(data.getName());
//解决办法微信分享功能问题-描述内容换行,导致js加载失败↓↓↓↓↓↓↓
weiXinJsSdk.setSharcontent(StringUtils.isNotEmpty(data.getProfiles()) ? data.getProfiles().replaceAll("\r\n", "").substring(0, 30) : "");
weiXinJsSdk.setSharimg(data.getShareImg());
modelAndView.addObject("weiXinJsSdk", weiXinJsSdk);
<script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
<script type="text/javascript">
var EncodeURI = function (unzipStr, isCusEncode) {
if (isCusEncode) {
var zipArray = new Array();
var zipstr = "";
var lens = new Array();
for (var i = 0; i < unzipStr.length; i++) {
var ac = unzipStr.charCodeAt(i);
zipstr += ac;
lens = lens.concat(ac.toString().length);
}
zipArray = zipArray.concat(zipstr);
zipArray = zipArray.concat(lens.join("O"));
return zipArray.join("N");
} else {
//return encodeURI(unzipStr);
var zipstr = "";
var strSpecial = "!\"#$%&'()*+,/:;<=>?[]^`{|}~%";
var tt = "";
for (var i = 0; i < unzipStr.length; i++) {
var chr = unzipStr.charAt(i);
var c = StringToAscii(chr);
tt += chr + ":" + c + "n";
if (parseInt("0x" + c) > 0x7f) {
zipstr += encodeURI(unzipStr.substr(i, 1));
} else {
if (chr == " ")
zipstr += "+";
else if (strSpecial.indexOf(chr) != -1)
zipstr += "%" + c.toString(16);
else
zipstr += chr;
}
}
return zipstr;
}
}
var StringToAscii = function (str) {
return str.charCodeAt(0).toString(16);
}
var AsciiToString = function (asccode) {
return String.fromCharCode(asccode);
}
var shareimg = 'https://img2.17img.cn/pic/20211209/20211209182249_7633.jpg';
var appid= 'wx71271883f3fec076';
var jsTitle= '最严新规 直击化妆品检测';
//!!!!!!!!!!!!!!!!!!!!!问题出在这!!!!!!!!!!!!!!
var jsContent= '近年来,随着消费水平提高,化妆品市场需求不断增长,成为增速最快的消费品子行业之一。在化妆品行业迅速崛起的同时,行业监管也持续加强,近几年政策不断出台,如《化妆品监督管理条例》、《化妆品新原料注册备案资料管理规定》、《化妆品注册备案管理办法》等。
企业不仅要满足消费者的各种需求,也要确保产品符合法规标准,保障产品安全。为此,广电计量特搜集相关监管检测知识进行分享,供广大企业进行了解学习,确保产品合规。';
//!!!!!!!!!!!!!!!!!!!!!问题出在这!!!!!!!!!!!!!!
var currentUrl = 'https://www.woyaoce.cn/topics/HZP20211209/';
var path = 'https://www.woyaoce.cn/webinarAdmintest/MeetingTemplate/GetWeiXinJsSdk?url=' + EncodeURI(currentUrl);
var wxLink = currentUrl;
var jsObj = null;
$.ajax({
url: path,
dataType: "json",
jsonp: 'jsoncallback',
ajax:false,
success: function (r) {
jsObj = r;
if (appid != null && appid != "" && jsObj != null) {
wx.config({
debug: false,
appId: jsObj.appId,
timestamp: jsObj.timestamp,
nonceStr: jsObj.nonceStr,
signature: jsObj.signature,
jsApiList: [
'onMenuShareAppMessage',
'onMenuShareTimeline',
'onMenuShareQQ',
'onMenuShareQZone',
]
});
wx.ready(function () {
wx.onMenuShareTimeline({
title: jsTitle,
link: wxLink,
imgUrl: shareimg,
desc: jsContent,
success: function () {
},
cancel: function () {
}
});
wx.onMenuShareAppMessage({
title: jsTitle,
imgUrl: shareimg,
link: wxLink,
desc: jsContent,
success: function () {
},
cancel: function () {
}
});
wx.onMenuShareQQ({
title: jsTitle,
imgUrl: shareimg,
link: wxLink,
desc: jsContent,
success: function () {
},
cancel: function () {
}
});
wx.onMenuShareQZone({
title: jsTitle,
imgUrl: shareimg,
link: wxLink,
desc: jsContent,
success: function () {
},
cancel: function () {
}
});
});
}
}
});
</script>