找回密码
 立即注册

QQ登录

只需一步,快速开始

微信公众号开发资源

关注:794

所属分类: 微信开发 微信公众号开发资源

本版块为微信公众号开发教程与公众号开发相关技术分享板块,技术提问请到其他对应的问答板块发帖:)

[公众号开发博客] 自定义菜单类型说明 - 傻瓜式微信开发教程10 - 耗子原创

  [复制链接]
查看: 38571|回复: 256
最佳答案
91 

57

主题

231

帖子

2112

积分

超级版主

Rank: 8Rank: 8

积分
2112
QQ
 楼主| 发表于 2015-8-19 13:40:43 | 显示全部楼层 |阅读模式
现在我们看看用户点击我们自定义菜单项的时候都会发生什么.
官方对自定义菜单事件说明页为: http://mp.weixin.qq.com/wiki/9/9 ... 6.E6.8E.A8.E9.80.81

1、click:点击推事件
用户点击click类型按钮后,微信服务器会通过消息接口推送消息类型为event 的结构给开发者(参考消息接口指南),并且带上按钮中开发者填写的key值,开发者可以通过自定义的key值与用户进行交互;

创建此类型的按钮对应的JSON为:
游客,如果您要查看本帖隐藏内容请回复


点击此类型的按钮微信服务器回向我们的公众账号服务器发送以下内容:
  1. <xml>
  2. <ToUserName><![CDATA[toUser]]></ToUserName>
  3. <FromUserName><![CDATA[FromUser]]></FromUserName>
  4. <CreateTime>123456789</CreateTime>
  5. <MsgType><![CDATA[event]]></MsgType>
  6. <Event><![CDATA[CLICK]]></Event>
  7. <EventKey><![CDATA[CLICK_1]]></EventKey>
  8. </xml>
复制代码


配置中的`key`与发送的`EventKey`字段对应.

2、view:跳转URL
用户点击view类型按钮后,微信客户端将会打开开发者在按钮中填写的网页URL,可与网页授权获取用户基本信息接口结合,获得用户基本信息。

创建此类型按钮对应的JSON为:
游客,如果您要查看本帖隐藏内容请回复


点击此类型按钮时会打开url中指定的网页.
官方文档提到点击时回向公众账号服务器发送消息:
  1. <xml>
  2. <ToUserName><![CDATA[toUser]]></ToUserName>
  3. <FromUserName><![CDATA[FromUser]]></FromUserName>
  4. <CreateTime>123456789</CreateTime>
  5. <MsgType><![CDATA[event]]></MsgType>
  6. <Event><![CDATA[VIEW]]></Event>
  7. <EventKey><![CDATA[[url]www.qq.com[/url]]]></EventKey>
  8. </xml>
复制代码


但是在实际测试中发现并不会收到这个消息,不知道是不是我哪里弄错了.

3、scancode_push:扫码推事件
用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后显示扫描结果(如果是URL,将进入URL),且会将扫码的结果传给开发者,开发者可以下发消息。

此类型的按钮对应的JSON为:
游客,如果您要查看本帖隐藏内容请回复


官方文档中提到,扫描完成后会向公众号服务器发送消息,但是测试也没有收到这个消息.
  1. <xml><ToUserName><![CDATA[gh_e136c6e50636]]></ToUserName>
  2. <FromUserName><![CDATA[oMgHVjngRipVsoxg6TuX3vz6glDg]]></FromUserName>
  3. <CreateTime>1408090502</CreateTime>
  4. <MsgType><![CDATA[event]]></MsgType>
  5. <Event><![CDATA[scancode_push]]></Event>
  6. <EventKey><![CDATA[6]]></EventKey>
  7. <ScanCodeInfo><ScanType><![CDATA[qrcode]]></ScanType>
  8. <ScanResult><![CDATA[1]]></ScanResult>
  9. </ScanCodeInfo>
  10. </xml>
复制代码


4、scancode_waitmsg:扫码推事件且弹出“消息接收中”提示框
用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后,将扫码的结果传给开发者,同时收起扫一扫工具,然后弹出“消息接收中”提示框,随后可能会收到开发者下发的消息。

次类型的按钮对应的JSON为:
游客,如果您要查看本帖隐藏内容请回复


当点击这个按钮扫描二维码完成后会向公众号服务器发送如下消息
  1. <xml><ToUserName><![CDATA[gh_e136c6e50636]]></ToUserName>
  2. <FromUserName><![CDATA[oMgHVjngRipVsoxg6TuX3vz6glDg]]></FromUserName>
  3. <CreateTime>1408090606</CreateTime>
  4. <MsgType><![CDATA[event]]></MsgType>
  5. <Event><![CDATA[scancode_waitmsg]]></Event>
  6. <EventKey><![CDATA[CLICK_2]]></EventKey>
  7. <ScanCodeInfo><ScanType><![CDATA[qrcode]]></ScanType>
  8. <ScanResult><![CDATA[2]]></ScanResult>
  9. </ScanCodeInfo>
  10. </xml>
复制代码


5、pic_sysphoto:弹出系统拍照发图
用户点击按钮后,微信客户端将调起系统相机,完成拍照操作后,会将拍摄的相片发送给开发者,并推送事件给开发者,同时收起系统相机,随后可能会收到开发者下发的消息。
6、pic_photo_or_album:弹出拍照或者相册发图
用户点击按钮后,微信客户端将弹出选择器供用户选择“拍照”或者“从手机相册选择”。用户选择后即走其他两种流程。
7、pic_weixin:弹出微信相册发图器
用户点击按钮后,微信客户端将调起微信相册,完成选择操作后,将选择的相片发送给开发者的服务器,并推送事件给开发者,同时收起相册,随后可能会收到开发者下发的消息。

如上三条消息类似,
创建的JSON相似,只需要更改type字段值就OK了,
游客,如果您要查看本帖隐藏内容请回复


当用户发送照片完成后,公众号服务器会收到如下的信息:
  1. <xml><ToUserName><![CDATA[gh_e136c6e50636]]></ToUserName>
  2. <FromUserName><![CDATA[oMgHVjngRipVsoxg6TuX3vz6glDg]]></FromUserName>
  3. <CreateTime>1408090651</CreateTime>
  4. <MsgType><![CDATA[event]]></MsgType>
  5. <Event><![CDATA[pic_sysphoto]]></Event>
  6. <EventKey><![CDATA[6]]></EventKey>
  7. <SendPicsInfo><Count>1</Count>
  8. <PicList><item><PicMd5Sum><![CDATA[1b5f7c23b5bf75682a53e7b6d163e185]]></PicMd5Sum>
  9. </item>
  10. </PicList>
  11. </SendPicsInfo>
  12. </xml>
复制代码


8、location_select:弹出地理位置选择器
用户点击按钮后,微信客户端将调起地理位置选择工具,完成选择操作后,将选择的地理位置发送给开发者的服务器,同时收起位置选择工具,随后可能会收到开发者下发的消息。

此类型的按钮对应的JSON为:
游客,如果您要查看本帖隐藏内容请回复

用户确定位置发送完成后,公众号服务器会收到如下消息:
  1. <xml><ToUserName><![CDATA[gh_e136c6e50636]]></ToUserName>
  2. <FromUserName><![CDATA[oMgHVjngRipVsoxg6TuX3vz6glDg]]></FromUserName>
  3. <CreateTime>1408091189</CreateTime>
  4. <MsgType><![CDATA[event]]></MsgType>
  5. <Event><![CDATA[location_select]]></Event>
  6. <EventKey><![CDATA[6]]></EventKey>
  7. <SendLocationInfo><Location_X><![CDATA[23]]></Location_X>
  8. <Location_Y><![CDATA[113]]></Location_Y>
  9. <Scale><![CDATA[15]]></Scale>
  10. <Label><![CDATA[ 广州市海珠区客村艺苑路 106号]]></Label>
  11. <Poiname><![CDATA[]]></Poiname>
  12. </SendLocationInfo>
  13. </xml>
复制代码


这是我们开发中可能遇到的各种自定义按钮的定义方式以及操作完成后微信服务器对公众号服务器发送的消息格式.



回复

使用道具 举报

最佳答案
0 

0

主题

3

帖子

4

积分

新人求带

积分
4
发表于 2015-8-19 18:23:43 | 显示全部楼层
学习下:
回复

使用道具 举报

最佳答案
0 

0

主题

2

帖子

9

积分

新人求带

积分
9
发表于 2015-8-19 19:15:02 | 显示全部楼层
本帖最后由 moremorefun 于 2015-8-20 14:59 编辑

支持一下哈

回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

5

帖子

11

积分

新人求带

积分
11
发表于 2015-8-19 19:37:02 | 显示全部楼层
学习一下
回复

使用道具 举报

最佳答案
0 

0

主题

5

帖子

22

积分

新人求带

积分
22
发表于 2015-8-20 14:36:36 | 显示全部楼层
谢谢大神指教
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

8

帖子

14

积分

新人求带

积分
14
发表于 2015-8-20 14:58:38 | 显示全部楼层
查看内容
回复

使用道具 举报

最佳答案
0 

0

主题

5

帖子

40

积分

新人求带

积分
40
发表于 2015-8-20 16:54:59 | 显示全部楼层
学习学习!学习学习
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

41

帖子

68

积分

新人求带

积分
68
发表于 2015-8-20 20:45:32 | 显示全部楼层
guanxinde zai here
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

5

帖子

28

积分

新人求带

积分
28
发表于 2015-8-23 10:03:25 | 显示全部楼层
学习了,感谢大大分享!
回复 支持 反对

使用道具 举报

最佳答案
1 

1

主题

55

帖子

69

积分

新人求带

积分
69
发表于 2015-8-23 23:47:19 | 显示全部楼层
Json 是什么呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


易域网-您身边的域名管家

henkuai.com是专业的第三方微信开发者平台,为生态而生。


本站为第三方微信开发者平台,非腾讯官方网站。

天津市滨海新区
中新生态城中成大道生态建设公寓9号楼3层301

欢迎来这里一起喝喝茶,
聊聊你的产品。

微信公众号gongzhongkaifa

工作日12小时内回复。

网站业务
zhongcong@henkuai.com

工作日12小时内回复。

市场合作
songchang@henkuai.com