• button
    • Bug & Tip

    button

    按钮。

    属性名类型默认值说明生效时机最低版本
    sizeStringdefault按钮的大小
    typeStringdefault按钮的样式类型
    plainBooleanfalse按钮是否镂空,背景色透明
    disabledBooleanfalse是否禁用
    loadingBooleanfalse名称前是否带 loading 图标
    form-typeString用于 <form> 组件,点击分别会触发 <form> 组件的 submit/reset 事件
    open-typeStringQQ开放能力
    hover-classStringbutton-hover指定按钮按下去的样式类。当 hover-class="none" 时,没有点击态效果
    hover-stop-propagationBooleanfalse指定是否阻止本节点的祖先节点出现点击态
    hover-start-timeNumber20按住后多久出现点击态,单位毫秒
    hover-stay-timeNumber70手指松开后点击态保留时间,单位毫秒
    langStringen指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文。open-type="getUserInfo"
    bindgetuserinfoHandler用户点击该按钮时,会返回获取到的用户信息,回调的detail数据与qq.getUserInfo返回的一致open-type="getUserInfo"
    app-parameterString打开 APP 时,向 APP 传递的参数open-type="launchApp"
    group-idString打开群资料卡时,传递的群号open-type="openGroupProfile"
    binderrorHandler当使用开放能力时,发生错误的回调open-type="launchApp"
    bindlaunchappHandler打开 APP 成功的回调open-type="launchApp"
    bindopensettingHandler在打开授权设置页后回调open-type="openSetting"
    share-typeNumber27分享类型集合open-type="share"1.4.4
    aria-labelString无障碍访问,(属性)元素的额外描述
    • 注1:button-hover 默认为{background-color: rgba(0, 0, 0, 0.1); opacity: 0.7;}
    • 注2:在bindgetphonenumber 等返回加密信息的回调中调用 qq.login 登录,可能会刷新登录态。此时服务器使用 code 换取的 sessionKey 不是加密时使用的 sessionKey,导致解密失败。建议开发者提前进行 login;或者在回调中先使用 checkSession 进行登录态检查,避免 login 刷新登录态。
    • 注3:button 可作为原生组件的子节点嵌入,以便在原生组件上使用 open-type 的能力size 有效值:
    说明
    default默认大小
    mini小尺寸

    type 有效值:

    说明
    primary绿色
    default白色
    warn红色

    form-type 有效值:

    说明
    submit提交表单
    reset重置表单

    open-type 有效值:

    说明最低版本
    share触发用户转发,使用前建议先阅读使用指引
    getUserInfo获取用户信息,可以从bindgetuserinfo回调中获取到用户信息
    launchApp打开APP,可以通过app-parameter属性设定向APP传的参数具体说明暂时以邀请制开放申请,请留意后续通知
    openSetting打开授权设置页
    feedback呼起吐个槽反馈页面,开发者可以到官网button - 图1查看反馈基础库1.2.0版本开始支持
    openGroupProfile呼起群资料卡页面,可以通过group-id属性设定需要打开的群资料卡的群号,同时app.json中必须配置groupIdList(数量不超过10个),表明可以打开群资料卡的群号基础库1.4.7版本开始支持

    share-type 有效值:

    字段值按字节bit位分配

    bit低位到高位:

    • 第1位bit0为分享到好友
    • 第2位bit1为分享到空间
    • 第3位bit2为快速分享到当前聊天窗口
    • 第4位bit3为分享到微信好友
    • 第5位bit4为分享到微信朋友圈bit2的优先级大于其他位,如果设置了bit2,则bit0bit1bit3bit4都会失效。

    比如share-type设置为7(二进制表示为111),则分享到好友和分享到空间会被忽略。

    bit位说明最低版本
    1分享面板展示“分享到好友”1.4.4
    2分享面板展示“分享到空间”1.4.4
    3进行快速分享,直接分享到当前聊天窗口,onShareAppMessage需要带上entryDataHash参数1.6.3
    4分享面板展示“分享到微信好友”1.6.3
    5分享面板展示“分享到微信朋友圈”1.6.3

    示例代码:

    1. /** qss **/
    2. /** 修改button默认的点击态样式类**/
    3. .button-hover {
    4. background-color: red;
    5. }
    6. /** 添加自定义button点击态样式类**/
    7. .other-button-hover {
    8. background-color: blue;
    9. }
    1. <button
    2. type="default"
    3. size="{{defaultSize}}"
    4. loading="{{loading}}"
    5. plain="{{plain}}"
    6. disabled="{{disabled}}"
    7. bindtap="default"
    8. hover-class="other-button-hover"
    9. >
    10. default
    11. </button>
    12. <button
    13. type="primary"
    14. size="{{primarySize}}"
    15. loading="{{loading}}"
    16. plain="{{plain}}"
    17. disabled="{{disabled}}"
    18. bindtap="primary"
    19. >
    20. primary
    21. </button>
    22. <button
    23. type="warn"
    24. size="{{warnSize}}"
    25. loading="{{loading}}"
    26. plain="{{plain}}"
    27. disabled="{{disabled}}"
    28. bindtap="warn"
    29. >
    30. warn
    31. </button>
    32. <button bindtap="setDisabled">点击设置以上按钮disabled属性</button>
    33. <button bindtap="setPlain">点击设置以上按钮plain属性</button>
    34. <button bindtap="setLoading">点击设置以上按钮loading属性</button>
    35. <button open-type="contact">进入客服会话</button>
    36. <button open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="onGotUserInfo">
    37. 获取用户信息
    38. </button>
    39. <button open-type="openSetting">打开授权设置页</button>
    40. <button open-type="share" share-type="{{1}}">只能分享到好友</button>
    41. <button open-type="share" share-type="{{2}}">只能分享到空间</button>
    42. <button open-type="share" share-type="{{3}}">可以分享到好友和空间</button>
    43. <botton open-type="share" share-type="{{4}}" entry-data-hash="xxxxxx">分享</botton>
    44. <button open-type="openGroupProfile" group-id="123456">打开群资料卡</button>
    1. const types = ['default', 'primary', 'warn']
    2. const pageObject = {
    3. data: {
    4. defaultSize: 'default',
    5. primarySize: 'default',
    6. warnSize: 'default',
    7. disabled: false,
    8. plain: false,
    9. loading: false
    10. },
    11. setDisabled(e) {
    12. this.setData({
    13. disabled: !this.data.disabled
    14. })
    15. },
    16. setPlain(e) {
    17. this.setData({
    18. plain: !this.data.plain
    19. })
    20. },
    21. setLoading(e) {
    22. this.setData({
    23. loading: !this.data.loading
    24. })
    25. },
    26. onGotUserInfo(e) {
    27. console.log(e.detail.errMsg)
    28. console.log(e.detail.userInfo)
    29. console.log(e.detail.rawData)
    30. },
    31. }
    32. for (let i = 0; i < types.length; ++i) {
    33. (function (type) {
    34. pageObject[type] = function (e) {
    35. const key = type + 'Size'
    36. const changedData = {}
    37. changedData[key] =
    38. this.data[key] === 'default' ? 'mini' : 'default'
    39. this.setData(changedData)
    40. }
    41. }(types[i]))
    42. }
    43. Page(pageObject)
    1. /** app.json **/
    2. /** 必须要配置groupIdList,且group-id必须在groupIdList中才能生效**/
    3. {
    4. "pages": ["pages/index/index", "pages/logs/index"],
    5. "window": {
    6. "navigationBarTitleText": "Demo"
    7. },
    8. "tabBar": {
    9. "list": [
    10. {
    11. "pagePath": "pages/index/index",
    12. "text": "首页"
    13. },
    14. {
    15. "pagePath": "pages/logs/logs",
    16. "text": "日志"
    17. }
    18. ]
    19. },
    20. "networkTimeout": {
    21. "request": 10000,
    22. "downloadFile": 10000
    23. },
    24. "debug": true,
    25. "navigateToMiniProgramAppIdList": ["qqe5f52902cf4de896"],
    26. "groupIdList":["123456","34356576","457658769"]
    27. }

    button

    Bug & Tip
    • tip: 目前,设置了 form-typebutton 只会对当前组件中的 form 有效。因而,将 button 封装在自定义组件中,而 from 在自定义组件外,将会使这个 buttonform-type 失效。