<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount>1</ArticleCount>
<Articles>
<item>
<Title><![CDATA[title1]]></Title>
<Description><![CDATA[description1]]></Description>
<PicUrl><![CDATA[picurl]]></PicUrl>
<Url><![CDATA[url]]></Url>
</item>
</Articles>
</xml>
ArticleCount | 消息数量 |
Title | 标题 |
Description | 描述(当ArticleCount大于1时,不显示) |
PicUrl | 图片的地址(可访问的url地址 |
Url | 点击后跳转地址 |
添加菜单,并设置key值。参照《创建菜单》
{
"type":"click",
"name":"图文",
"key":"mh005"
}
修改WXMessgeBean。
@XmlRootElement(name="xml")
@XmlAccessorType(XmlAccessType.FIELD)
public class WXMessgeBean {
......
private int ArticleCount;
private ArticleMessage Articles;
......
public int getArticleCount() {
return ArticleCount;
}
public void setArticleCount(int articleCount) {
ArticleCount = articleCount;
}
public ArticleMessage getArticles() {
return Articles;
}
public void setArticles(ArticleMessage articles) {
Articles = articles;
}
//新增图文消息Bean
public static class ArticleMessage{
private List<ArticleItem> item;
@XmlElement(name = "item")
public List<ArticleItem> getItem() {
if (item == null)
item = new ArrayList<>();
return item;
}
}
public static class ArticleItem{
private String title;
private String description;
private String picUrl;
private String url;
public String getTitle() {
return title;
}
@XmlElement(name = "Title")
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
@XmlElement(name = "Description")
public void setDescription(String description) {
this.description = description;
}
public String getPicUrl() {
return picUrl;
}
@XmlElement(name = "PicUrl")
public void setPicUrl(String picUrl) {
this.picUrl = picUrl;
}
public String getUrl() {
return url;
}
@XmlElement(name = "Url")
public void setUrl(String url) {
this.url = url;
}
}
}
回复代码,先看一条的情况。
else if (wxMessgeBean.getEventKey().equals("mh005")){
bean.setMsgType("news");
bean.setArticleCount(1);
bean.setArticles(new WXMessgeBean.ArticleMessage());
WXMessgeBean.ArticleItem item = new WXMessgeBean.ArticleItem();
item.setTitle("图文消息一");
item.setDescription("中华人民共和国成立70周年");
item.setPicUrl("https://gss0.bdstatic.com/94o3dSag_xI4khGkpoWK1HF6hhy/baike/pic/item/d01373f082025aaf6ca357d9f7edab64034f1a0a.jpg");
//假定点击跳转到百度
item.setUrl("http://www.baidu.com");
bean.getArticles().getItem().add(item);
}
这时Title和Description都会显示。再看看两个的情况。
else if (wxMessgeBean.getEventKey().equals("mh005")){
bean.setMsgType("news");
bean.setArticleCount(2);
bean.setArticles(new WXMessgeBean.ArticleMessage());
WXMessgeBean.ArticleItem item = new WXMessgeBean.ArticleItem();
item.setTitle("图文消息一");
item.setDescription("中华人民共和国成立70周年");
item.setPicUrl("https://gss0.bdstatic.com/94o3dSag_xI4khGkpoWK1HF6hhy/baike/pic/item/d01373f082025aaf6ca357d9f7edab64034f1a0a.jpg");
item.setUrl("http://www.baidu.com");
bean.getArticles().getItem().add(item);
item = new WXMessgeBean.ArticleItem();
item.setTitle("图文消息二");
item.setDescription("弹劾特朗普");
item.setPicUrl("http://static.ename.cn/article/2018-12-17/pic-1-1545037442.jpg");
item.setUrl("http://www.baidu.com");
bean.getArticles().getItem().add(item);
}
和一条的对比以下,看到只显示Title。