目录

什么是菜单事件推送

用户点击自定义菜单后,微信会把点击事件推送给开发者,请注意,点击菜单弹出子菜单,不会产生上报。

Controller

            if(MessageUtil.MESSAGE_CLICK.equals(eventType)){
                //clickButton
                if ("11".equals(eventKey)){
                    message = MessageUtil.initText(toUserName, fromUserName, "点击了clickButton11");
                }else{
                    message = MessageUtil.initText(toUserName, fromUserName, "点击了clickButton22");
                }
            }else if(MessageUtil.MESSAGE_VIEW.equals(eventType)){
                //viewButton,不会返回
                String url = map.get("EventKey");
                message = MessageUtil.initText(toUserName, fromUserName, "点击的url:"+url);
            }else if(MessageUtil.MESSAGE_SCANCODE.equals(eventType)){
                //扫码,不会返回
                String key = map.get("EventKey");
                message = MessageUtil.initText(toUserName, fromUserName, key);
            }
    public static final String MESSAGE_CLICK = "CLICK";
    public static final String MESSAGE_VIEW = "VIEW";
    public static final String MESSAGE_SCANCODE= "scancode_push";
    public static final String MESSAGE_LOCATION = "location";

我看文档上所有的MsgType(消息类型)都是event,应该是错误吧,所以大家都留意,调试吧。

效果

微信公众号开发 - 10.自定义菜单事件推送

源代码

Weixin.rar