微信公众平台开发教程之文本消息如何换行(第十二课)

2017年08月01日 12:10 | 2524次浏览 作者原创 版权保护

【实例代码下载】

两节课介绍了微信公众平台开发工具类的开发,这节课呢就用到了,没有读前两节课程的读者建议看前两节课程,当然你可以可以去下载实例代码直接运行 。

使用"\n"换行

回复用户的文本消息换行,使得 消息的可读性,工整性,美观上都比不换行高了一个层级,带来的是更好的用户体验效果,接下来贴出的是doPost方法中的代码片段:

/**
	 * 处理微信服务器发来的消息
	 * 实例源码在文章顶部有下载连接
	 */
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
		System.out.println("V型知识库原创www.vxzsk.com");
		System.out.println("微信服务器发来消息------------");
		// 将请求、响应的编码均设置为UTF-8(防止中文乱码)
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		String respMessage = null;
		try{
		//xml请求解析
		Map<String, String> requestMap = MessageUtil.parseXml(request);//接收微信发过来的xml格式
		//发送方帐号(open_id)
		String fromUserName = requestMap.get("FromUserName");
		//公众帐号
		String toUserName = requestMap.get("ToUserName");
		//消息类型
		String msgType = requestMap.get("MsgType");
		//消息创建时间
		String createTime = requestMap.get("CreateTime");
		//微信服务器post过来的内容
        String weixinContent = requestMap.get("Content");
        System.out.println("公众号用户发送过来的文本消息内容:"+weixinContent);
        //接下来我们用上一章节自己封装好的工具类
        if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_TEXT)) {//文本类型 用户回复 “hh” 微信自动回复此条消息
        //回复换行的文本消息
        TextMessage textMessage = new TextMessage();
		textMessage.setToUserName(fromUserName);
		textMessage.setFromUserName(toUserName);
		textMessage.setCreateTime(new Date().getTime());
		textMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);
		textMessage.setFuncFlag(0);
		
		//回复用户的换行字符串 \n表示换行
		StringBuffer buffer = new StringBuffer();
		if(weixinContent.equals("hh")){//如果用户发送”hh“
		buffer.append("你好我是V型知识库,我的域名是www.vxzsk.com").append("\n\n");
		buffer.append("1,微信技术").append("\n");
		buffer.append("2,微信WeUi").append("\n");
		buffer.append("3,微信蓝牙").append("\n");
		buffer.append("4,微信jsapi").append("\n\n");
		buffer.append("回复'hh'二字即可能显示此条消息");
		}else{
		buffer.append("您好我是V型知识库");
		}
		textMessage.setContent(buffer.toString());
		respMessage = MessageUtil.textMessageToXml(textMessage);//转换成xml格式
        
        }
		
		// 响应回复消息
        PrintWriter out = response.getWriter();
        out.print(respMessage);
        out.close();
         }catch(Exception e){
	      e.printStackTrace();
         }
	}

由于编辑器预览效果和实际效果行数有错位,我在这里说的行数可能对应不上,不过错位行数不多,并不影响阅读。

39-44行代码之间,开头用了两个换行符,结束倒数第二句话用了两个换行符,中间用了一个换行符

效果图如下:

上面代码片段中用到的其他类,在文章顶部有代码下载链接,读者可自行下载,在这里就不在贴出

此文章本站原创,地址 https://www.vxzsk.com/66.html   转载请注明出处!谢谢!

感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程