微信公众号开发(七)——点击菜单回复图文消息

<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。 

发布了130 篇原创文章 · 获赞 42 · 访问量 79万+

猜你喜欢

转载自blog.csdn.net/bdmh/article/details/103492624