button.go 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. package menu
  2. //Button 菜单按钮
  3. type Button struct {
  4. Type string `json:"type,omitempty"`
  5. Name string `json:"name,omitempty"`
  6. Key string `json:"key,omitempty"`
  7. URL string `json:"url,omitempty"`
  8. MediaID string `json:"media_id,omitempty"`
  9. SubButtons []*Button `json:"sub_button,omitempty"`
  10. }
  11. //SetSubButton 设置二级菜单
  12. func (btn *Button) SetSubButton(name string, subButtons []*Button) {
  13. btn.Name = name
  14. btn.SubButtons = subButtons
  15. btn.Type = ""
  16. btn.Key = ""
  17. btn.URL = ""
  18. btn.MediaID = ""
  19. }
  20. //SetClickButton btn 为click类型
  21. func (btn *Button) SetClickButton(name, key string) {
  22. btn.Type = "click"
  23. btn.Name = name
  24. btn.Key = key
  25. btn.URL = ""
  26. btn.MediaID = ""
  27. btn.SubButtons = nil
  28. }
  29. //SetViewButton view类型
  30. func (btn *Button) SetViewButton(name, url string) {
  31. btn.Type = "view"
  32. btn.Name = name
  33. btn.URL = url
  34. btn.Key = ""
  35. btn.MediaID = ""
  36. btn.SubButtons = nil
  37. }
  38. // SetScanCodePushButton 扫码推事件
  39. func (btn *Button) SetScanCodePushButton(name, key string) {
  40. btn.Type = "scancode_push"
  41. btn.Name = name
  42. btn.Key = key
  43. btn.URL = ""
  44. btn.MediaID = ""
  45. btn.SubButtons = nil
  46. }
  47. //SetScanCodeWaitMsgButton 设置 扫码推事件且弹出"消息接收中"提示框
  48. func (btn *Button) SetScanCodeWaitMsgButton(name, key string) {
  49. btn.Type = "scancode_waitmsg"
  50. btn.Name = name
  51. btn.Key = key
  52. btn.URL = ""
  53. btn.MediaID = ""
  54. btn.SubButtons = nil
  55. }
  56. //SetPicSysPhotoButton 设置弹出系统拍照发图按钮
  57. func (btn *Button) SetPicSysPhotoButton(name, key string) {
  58. btn.Type = "pic_sysphoto"
  59. btn.Name = name
  60. btn.Key = key
  61. btn.URL = ""
  62. btn.MediaID = ""
  63. btn.SubButtons = nil
  64. }
  65. //SetPicPhotoOrAlbumButton 设置弹出拍照或者相册发图类型按钮
  66. func (btn *Button) SetPicPhotoOrAlbumButton(name, key string) {
  67. btn.Type = "pic_photo_or_album"
  68. btn.Name = name
  69. btn.Key = key
  70. btn.URL = ""
  71. btn.MediaID = ""
  72. btn.SubButtons = nil
  73. }
  74. // SetPicWeixinButton 设置弹出微信相册发图器类型按钮
  75. func (btn *Button) SetPicWeixinButton(name, key string) {
  76. btn.Type = "pic_weixin"
  77. btn.Name = name
  78. btn.Key = key
  79. btn.URL = ""
  80. btn.MediaID = ""
  81. btn.SubButtons = nil
  82. }
  83. // SetLocationSelectButton 设置 弹出地理位置选择器 类型按钮
  84. func (btn *Button) SetLocationSelectButton(name, key string) {
  85. btn.Type = "location_select"
  86. btn.Name = name
  87. btn.Key = key
  88. btn.URL = ""
  89. btn.MediaID = ""
  90. btn.SubButtons = nil
  91. }
  92. //SetMediaIDButton 设置 下发消息(除文本消息) 类型按钮
  93. func (btn *Button) SetMediaIDButton(name, mediaID string) {
  94. btn.Type = "media_id"
  95. btn.Name = name
  96. btn.MediaID = mediaID
  97. btn.Key = ""
  98. btn.URL = ""
  99. btn.SubButtons = nil
  100. }
  101. //SetViewLimitedButton 设置 跳转图文消息URL 类型按钮
  102. func (btn *Button) SetViewLimitedButton(name, mediaID string) {
  103. btn.Type = "view_limited"
  104. btn.Name = name
  105. btn.MediaID = mediaID
  106. btn.Key = ""
  107. btn.URL = ""
  108. btn.SubButtons = nil
  109. }