# button

基础库 1.0.0 开始支持,低版本需做兼容处理。

微信 Windows 版:支持

微信 Mac 版:支持

微信 鸿蒙 OS 版:支持

相关文档: 聊天工具模式

渲染框架支持情况:Skyline (使用最新 Nightly 工具调试)、WebView

# 功能描述

按钮。

# 通用属性

属性 类型 默认值 必填 说明 最低版本
size string default 否 按钮的大小 1.0.0
合法值 说明
default 默认大小
mini 小尺寸
type string default 否 按钮的样式类型 1.0.0
合法值 说明
primary 绿色
default 白色
warn 红色
plain boolean false 否 按钮是否镂空,背景色透明 1.0.0
disabled boolean false 否 是否禁用 1.0.0
loading boolean false 否 名称前是否带 loading 图标 1.0.0
form-type string 否 用于 form 组件,点击分别会触发 form 组件的 submit/reset 事件 1.0.0
合法值 说明 最低版本
submit 提交表单
reset 重置表单
submitToGroup 转发文本到聊天 3.7.8
open-type string 否 微信开放能力 1.1.0
合法值 说明 最低版本
contact 打开客服会话,如果用户在会话中点击消息卡片后返回小程序,可以从 bind:contact 回调中获得具体信息,具体说明。鸿蒙 OS 暂不支持 1.1.0
liveActivity 通过前端获取新的一次性订阅消息下发机制使用的 code 2.26.2
share 触发用户转发,使用前建议先阅读使用指引 1.2.0
getPhoneNumber 手机号快速验证,向用户申请,并在用户同意后,快速填写和验证手机,具体说明 (*小程序插件中不能使用*) 1.2.0
getRealtimePhoneNumber 手机号实时验证,向用户申请,并在用户同意后,快速填写和实时验证手机号。具体说明 (*小程序插件中不能使用*) 2.24.4
getUserInfo 获取用户信息,可以从bind:getuserinfo回调中获取到用户信息 (*小程序插件中不能使用*) 1.3.0
launchApp 打开APP,可以通过app-parameter属性设定向APP传的参数具体说明 1.9.5
openSetting 打开授权设置页 2.0.7
feedback 打开“意见反馈”页面,用户可提交反馈内容并上传日志,开发者可以登录小程序管理后台后进入左侧菜单“客服反馈”页面获取到反馈内容 2.1.0
chooseAvatar 获取用户头像,可以从bind:chooseavatar回调中获取到头像信息 2.21.2
agreePrivacyAuthorization 用户同意隐私协议按钮。用户点击一次此按钮后,所有已声明过的隐私接口可以正常调用。可通过 bind:agreeprivacyauthorization 监听用户同意隐私协议事件。隐私合规开发指南详情可见《小程序隐私协议开发指南》 2.32.3
hover-class string button-hover 否 指定按钮按下去的样式类。当 hover-class="none" 时,没有点击态效果 1.0.0
hover-stop-propagation boolean false 否 指定是否阻止本节点的祖先节点出现点击态 1.5.0
hover-start-time number 20 否 按住后多久出现点击态,单位毫秒 1.0.0
hover-stay-time number 70 否 手指松开后点击态保留时间,单位毫秒 1.0.0
lang string en 否 指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文。 1.3.0
合法值 说明
en 英文
zh_CN 简体中文
zh_TW 繁体中文
session-from string 否 会话来源,open-type="contact"时有效,长度不超过 1024 个字符 1.4.0
send-message-title string 当前标题 否 会话内消息卡片标题,open-type="contact"时有效 1.5.0
send-message-path string 当前分享路径 否 会话内消息卡片点击跳转小程序路径,open-type="contact"时有效 1.5.0
send-message-img string 截图 否 会话内消息卡片图片,open-type="contact"时有效 1.5.0
app-parameter string 否 打开 APP 时,向 APP 传递的参数,open-type=launchApp时有效 1.9.5
show-message-card boolean false 否 是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示,用户点击后可以快速发送小程序消息,open-type="contact"时有效 1.5.0
phone-number-no-quota-toast boolean true 否 当手机号快速验证或手机号实时验证额度用尽时,是否对用户展示“申请获取你的手机号,但该功能使用次数已达当前小程序上限,暂时无法使用”的提示,默认展示,open-type="getPhoneNumber" 或 open-type="getRealtimePhoneNumber" 时有效 3.0.1
need-show-entrance boolean true 否 转发的文本消息是否要带小程序入口 3.7.8
entrance-path string '' 否 从消息小程序入口打开小程序的路径,默认为聊天工具启动路径 3.7.8
bind:getuserinfo eventhandle 否 用户点击该按钮时,会返回获取到的用户信息,回调的detail数据与wx.getUserInfo返回的一致,open-type="getUserInfo"时有效 1.3.0
bind:contact eventhandle 否 客服消息回调,open-type="contact"时有效。 1.5.0
createliveactivity eventhandle 否 新的一次性订阅消息下发机制回调,open-type=liveActivity时有效 2.26.2
bind:getphonenumber eventhandle 否 手机号快速验证回调,open-type=getPhoneNumber时有效。Tips:在触发 bind:getphonenumber 回调后应立即隐藏手机号按钮组件,或置为 disabled 状态,避免用户重复授权手机号产生额外费用。 1.2.0
bind:getrealtimephonenumber eventhandle 否 手机号实时验证回调,open-type=getRealtimePhoneNumber 时有效。Tips:在触发 bind:getrealtimephonenumber 回调后应立即隐藏手机号按钮组件,或置为 disabled 状态,避免用户重复授权手机号产生额外费用。 2.24.4
bind:error eventhandle 否 当使用开放能力时,发生错误的回调,open-type=launchApp时有效 1.9.5
bind:opensetting eventhandle 否 在打开授权设置页后回调,open-type=openSetting时有效 2.0.7
bind:launchapp eventhandle 否 打开 APP 成功的回调,open-type=launchApp时有效 2.4.4
bind:chooseavatar eventhandle 否 获取用户头像回调,open-type=chooseAvatar时有效 2.21.2
bind:agreeprivacyauthorization eventhandle 否 用户同意隐私协议事件回调,open-type=agreePrivacyAuthorization时有效 (Tips: 如果使用 onNeedPrivacyAuthorization 接口,需要在 bind:agreeprivacyauthorization 触发后再调用 resolve({ event: "agree", buttonId })) 2.32.3

# Bug & Tip

  1. tip: button-hover 默认为{background-color: rgba(0, 0, 0, 0.1); opacity: 0.7;}
  2. tip: bind:getphonenumber 从1.2.0 开始支持,但是在1.5.3以下版本中无法使用wx.canIUse进行检测,建议使用基础库版本进行判断。
  3. tip: 在bind:getphonenumber 等返回加密信息的回调中调用 wx.login 登录,可能会刷新登录态。此时服务器使用 code 换取的 sessionKey 不是加密时使用的 sessionKey,导致解密失败。建议开发者提前进行 login;或者在回调中先使用 checkSession 进行登录态检查,避免 login 刷新登录态。
  4. tip: 从 2.21.2 起,对getPhoneNumber接口进行了安全升级,bind:getphonenumber 返回的信息中增加code参数,code是一个动态的令牌,开发者拿到code后需调用微信后台接口换取手机号。详情新版接口使用指南
  5. tip: 从 2.1.0 起,button 可作为原生组件的子节点嵌入,以便在原生组件上使用 open-type 的能力。
  6. tip: 目前设置了 form-type 的 button 只会对当前组件中的 form 有效。因而,将 button 封装在自定义组件中,而 form 在自定义组件外,将会使这个 button 的 form-type 失效。

# 发送文本到群示例代码

需结合 form 和 textarea 组件使用。 button 需要设置 form-type="submitToGroup",此时点击按钮将会发送 textarea 的内容到聊天。

<form bind:submitToGroup="onSubmitToGroup">
	<textarea value="{{shareText}}" />
	<button
    form-type="submitToGroup"
    need-show-entrance="{{true}}"
    entrance-path=""
	></button>
</form>

# 示例代码

在开发者工具中预览效果