小程序 Button
-
按钮参数
属性 类型 默认值 必填 说明 size string default 否 按钮的大小 type string default 否 按钮的样式类型 plain boolean false 否 按钮是否镂空,背景色透明 disabled boolean false 否 是否禁用 loading boolean false 否 名称前是否带 loading 图标 form-type string 否 用于 form 组件,点击分别会触发 form 组件的 submit/reset 事件 open-type string 否 微信开放能力 hover-class string button-hover 否 指定按钮按下去的样式类。当 hover-class="none"
时,没有点击态效果hover-stop-propagation boolean false 否 指定是否阻止本节点的祖先节点出现点击态 hover-start-time number 20 否 按住后多久出现点击态,单位毫秒 hover-stay-time number 70 否 手指松开后点击态保留时间,单位毫秒 lang string en 否 指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文。 session-from string 否 会话来源,open-type="contact"时有效 send-message-title string 当前标题 否 会话内消息卡片标题,open-type="contact"时有效 send-message-path string 当前分享路径 否 会话内消息卡片点击跳转小程序路径,open-type="contact"时有效 send-message-img string 截图 否 会话内消息卡片图片,open-type="contact"时有效 app-parameter string 否 打开 APP 时,向 APP 传递的参数,open-type=launchApp时有效 show-message-card boolean false 否 是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示,用户点击后可以快速发送小程序消息,open-type="contact"时有效 bindgetuserinfo eventhandle 否 用户点击该按钮时,会返回获取到的用户信息,回调的detail数据与wx.getUserInfo返回的一致,open-type="getUserInfo"时有效 bindcontact eventhandle 否 客服消息回调,open-type="contact"时有效 bindgetphonenumber eventhandle 否 获取用户手机号回调,open-type=getPhoneNumber时有效 binderror eventhandle 否 当使用开放能力时,发生错误的回调,open-type=launchApp时有效 bindopensetting eventhandle 否 在打开授权设置页后回调,open-type=openSetting时有效 bindlaunchapp eventhandle 否 打开 APP 成功的回调,open-type=launchApp时有效 -
form-type 的合法值
值 说明 submit 提交表单 reset 重置表单 代码示例: -
open-type 的合法值
值 说明 contact 打开客服会话,如果用户在会话中点击消息卡片后返回小程序,可以从 bindcontact 回调中获得具体信息,具体说明 share 触发用户转发,使用前建议先阅读使用指引 getPhoneNumber 获取用户手机号,可以从 bindgetphonenumber 回调中获取到用户信息 getUserInfo 获取用户信息,可以从 bindgetuserinfo 回调中获取到用户信息 launchApp 打开APP,可以通过 app-parameter 属性设定向APP传的参数具体说明 openSetting 打开授权设置页 feedback 打开“意见反馈”页面,用户可提交反馈内容并上传日志,开发者可以登录小程序管理后台后进入左侧菜单“客服反馈”页面获取到反馈内容 -
getPhoneNumber
获取微信用户绑定的手机号,需先调用 wx.login 接口。因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 button 组件的点击来触发。注意:目前该接口针对非个人开发者,且完成了认证的小程序开放(不包含海外主体)。需谨慎使用,若用户举报较多或被发现在不必要场景下使用,微信有权永久回收该小程序的该接口权限。
使用方法:
需要将 button 组件 open-type 的值设置为 getPhoneNumber,当用户点击并同意之后,可以通过 bindgetphonenumber 事件回调获取到微信服务器返回的加密数据, 然后在第三方服务端结合 session_key 以及 app_id 进行解密获取手机号。注意:在回调中调用 wx.login 登录,可能会刷新登录态。此时服务器使用 code 换取的 sessionKey 不是加密时使用的 sessionKey,导致解密失败。建议开发者提前进行 login;或者在回调中先使用 checkSession 进行登录态检查,避免 login 刷新登录态。
代码示例:例如唯品会点击获取手机号授权登录效果: -
wx.getUserInfo(Object object)
获取用户信息参数:属性 类型 默认值 必填 说明 withCredentials boolean 否 是否带上登录态信息。当 withCredentials 为 true 时,要求此前有调用过 wx.login 且登录态尚未过期,此时返回的数据会包含 encryptedData, iv 等敏感信息;当 withCredentials 为 false 时,不要求有登录态,返回的数据不包含 encryptedData, iv 等敏感信息。 lang string en 否 显示用户信息的语言 success function 否 接口调用成功的回调函数 fail function 否 接口调用失败的回调函数 complete function 否 接口调用结束的回调函数(调用成功、失败都会执行) object.success 回调成功后参数
属性 类型 说明 userInfo UserInfo 用户信息对象,不包含 openid 等敏感信息 rawData string 不包括敏感信息的原始数据字符串,用于计算签名 signature string 使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息 encryptedData string 包括敏感数据在内的完整用户信息的加密数据 iv string 加密算法的初始向量 cloudID string 敏感数据对应的云 ID,开通云开发的小程序才会返回,可通过云调用直接获取开放数据,详细见云调用直接获取开放数据 小程序用户信息组件示例代码: