问题:在使用个推工具类TransmissionTemplate发送离线消息时,发送失败,消息中含有换行!
public static TransmissionTemplate transmissionTemplateDemo(String valueStr){
TransmissionTemplate template = new TransmissionTemplate();
Notify notify = new Notify();;
notify.setIntent("intent:#Intent;"+valueStr+"end");
template.set3rdNotifyInfo(notify);
}
查看TransmissionTemplate的源码发现,set3rdNotifyInfo方法中包含对notify的intent的校验
源码中正则表达式
在正则表达式中 .* 是用来匹配除换行之外的所有字符,因此如果传入的字符串中含有换行的话就会匹配失败。
需要对传入的参数进行处理,将里面的换行或者空格符最好都换成空字符串
valueStr.replaceAll("\n","");
valueStr.replaceAll("\r","");
为保险起见,在有字符串的操作时,最好对字符串进行处理,以防止出现\r\n引起的问题,如确实需要则可不处理。