button.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  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. AppID string `json:"appid,omitempty"`
  10. PagePath string `json:"pagepath,omitempty"`
  11. SubButtons []*Button `json:"sub_button,omitempty"`
  12. }
  13. //SetSubButton 设置二级菜单
  14. func (btn *Button) SetSubButton(name string, subButtons []*Button) {
  15. btn.Name = name
  16. btn.SubButtons = subButtons
  17. btn.Type = ""
  18. btn.Key = ""
  19. btn.URL = ""
  20. btn.MediaID = ""
  21. }
  22. //SetClickButton btn 为click类型
  23. func (btn *Button) SetClickButton(name, key string) {
  24. btn.Type = "click"
  25. btn.Name = name
  26. btn.Key = key
  27. btn.URL = ""
  28. btn.MediaID = ""
  29. btn.SubButtons = nil
  30. }
  31. //SetViewButton view类型
  32. func (btn *Button) SetViewButton(name, url string) {
  33. btn.Type = "view"
  34. btn.Name = name
  35. btn.URL = url
  36. btn.Key = ""
  37. btn.MediaID = ""
  38. btn.SubButtons = nil
  39. }
  40. // SetScanCodePushButton 扫码推事件
  41. func (btn *Button) SetScanCodePushButton(name, key string) {
  42. btn.Type = "scancode_push"
  43. btn.Name = name
  44. btn.Key = key
  45. btn.URL = ""
  46. btn.MediaID = ""
  47. btn.SubButtons = nil
  48. }
  49. //SetScanCodeWaitMsgButton 设置 扫码推事件且弹出"消息接收中"提示框
  50. func (btn *Button) SetScanCodeWaitMsgButton(name, key string) {
  51. btn.Type = "scancode_waitmsg"
  52. btn.Name = name
  53. btn.Key = key
  54. btn.URL = ""
  55. btn.MediaID = ""
  56. btn.SubButtons = nil
  57. }
  58. //SetPicSysPhotoButton 设置弹出系统拍照发图按钮
  59. func (btn *Button) SetPicSysPhotoButton(name, key string) {
  60. btn.Type = "pic_sysphoto"
  61. btn.Name = name
  62. btn.Key = key
  63. btn.URL = ""
  64. btn.MediaID = ""
  65. btn.SubButtons = nil
  66. }
  67. //SetPicPhotoOrAlbumButton 设置弹出拍照或者相册发图类型按钮
  68. func (btn *Button) SetPicPhotoOrAlbumButton(name, key string) {
  69. btn.Type = "pic_photo_or_album"
  70. btn.Name = name
  71. btn.Key = key
  72. btn.URL = ""
  73. btn.MediaID = ""
  74. btn.SubButtons = nil
  75. }
  76. // SetPicWeixinButton 设置弹出微信相册发图器类型按钮
  77. func (btn *Button) SetPicWeixinButton(name, key string) {
  78. btn.Type = "pic_weixin"
  79. btn.Name = name
  80. btn.Key = key
  81. btn.URL = ""
  82. btn.MediaID = ""
  83. btn.SubButtons = nil
  84. }
  85. // SetLocationSelectButton 设置 弹出地理位置选择器 类型按钮
  86. func (btn *Button) SetLocationSelectButton(name, key string) {
  87. btn.Type = "location_select"
  88. btn.Name = name
  89. btn.Key = key
  90. btn.URL = ""
  91. btn.MediaID = ""
  92. btn.SubButtons = nil
  93. }
  94. //SetMediaIDButton 设置 下发消息(除文本消息) 类型按钮
  95. func (btn *Button) SetMediaIDButton(name, mediaID string) {
  96. btn.Type = "media_id"
  97. btn.Name = name
  98. btn.MediaID = mediaID
  99. btn.Key = ""
  100. btn.URL = ""
  101. btn.SubButtons = nil
  102. }
  103. //SetViewLimitedButton 设置 跳转图文消息URL 类型按钮
  104. func (btn *Button) SetViewLimitedButton(name, mediaID string) {
  105. btn.Type = "view_limited"
  106. btn.Name = name
  107. btn.MediaID = mediaID
  108. btn.Key = ""
  109. btn.URL = ""
  110. btn.SubButtons = nil
  111. }
  112. //SetMiniprogramButton 设置 跳转小程序 类型按钮 (公众号后台必须已经关联小程序)
  113. func (btn *Button) SetMiniprogramButton(name, url, appID, pagePath string) {
  114. btn.Type = "miniprogram"
  115. btn.Name = name
  116. btn.URL = url
  117. btn.AppID = appID
  118. btn.PagePath = pagePath
  119. btn.Key = ""
  120. btn.MediaID = ""
  121. btn.SubButtons = nil
  122. }