欢迎光临
我们一直在努力

九八云百度小程序教程:like 点赞

  • like 点赞
    • 属性说明
      • like-param 点赞服务参数说明
    • 示例
      • 使用方式
      • 代码示例
    • Bug & Tip

    like 点赞

    解释:通过点赞组件,用户可以对文章内容或者评论内容进行点赞,被点赞的用户可以收到消息通知。更多点赞设计指引,详见如何提升小程序互动体验。

    属性说明

    属性名 类型 必填 默认值 说明
    is-liked Boolean false 是否已被点赞
    mode String icon 按钮模式。icon:表示仅有图标;mixture:表示图标文字结合
    icon-type String hand 图标类型。hand:表示手形;heart:表示心形
    style String none 仅在 mode 为 mixture 时可配置。none:无边框;border:有边框
    like-text String 点赞按钮上的文案。默认为赞,仅在 mode 属性值为’mixture’时有效
    like-num Number 0 点赞数量
    like-type Number 0 被点赞的对象类型。0:表示对文章内容进行点赞;1:表示对评论内容进行点赞
    animation-type Number 1 点赞动效形式。0:无动效;1:轻动效;2:强动效
    is-show-toast Boolean false 点赞后是否弹出 toast 提示
    toast-text Array [‘已点赞’, ‘已取消’] toast 文案,默认为已点赞、已取消
    like-param Object 点赞服务需要的必要参数
    bind:error EventHandle 使用 npm 方式引入点赞组件时,点击按钮时在用户未登录状态下会触发此事件;使用动态库方式引入点赞组件时,点击按钮时在用户未登录状态下不会触发此事件
    bind:success EventHandle 点击点赞按钮,在点赞服务成功后将状态返回给使用组件者
    bind:fail EventHandle 点击点赞按钮,在点赞服务失败后将状态返回给使用组件者

    like-param 点赞服务参数说明

    snid 和 spid 分别是文章内容和评论内容的唯一标识,由开发者创建和维护。当对文章内容进行点赞时,只需要填写 snid ;当对文章下某一评论进行点赞时,需要填写 snid 和 spid 。

    属性名 类型 必填 默认值 说明 示例值
    openid String 用户身份唯一标识,获取方法
    snid String 被点赞的文章的 id,与 path 参数一一对应 ‘20200101’
    spid String 被点赞的评论 id
    title String 文章标题
    path String 智能小程序内页链接,最长不能超过 194 字符。如该文章需要入信息流投放,需保证该参数与信息流投放提交的 path 一致,否则将会影响流量 “path”:”/pages/index/index”

    示例

    跳转编辑工具

    在开发者工具中打开

    在 WEB IDE 中打开

    扫码体验

    代码示例

    请使用百度APP扫码

    使用方式

    方式一:npm 引入

    
     
    1. # 进入项目根目录, 路径以./projectRoot为例
    2. cd ./projectRoot
    3. # 未安装过点赞组件
    4. npm install @smt-ui/content-component
    5. # 以前安装过点赞组件
    6. npm update
    • JSON
    
     
    1. {
    2. "usingComponents": {
    3. "smt-like": "@smt-ui/content-component/src/like"
    4. }
    5. }

    方式二:动态库引入

    在 app.json 中引入内容服务组件动态库。

    • JSON
    
     
    1. {
    2. "dynamicLib": {
    3. "myDynamicLib": {
    4. "provider": "smart-sc"
    5. }
    6. }
    7. }

    在页面配置 JSON 文件中,以动态库方式引入。

    • JSON
    
     
    1. {
    2. "usingComponents": {
    3. "smt-like": "dynamicLib://myDynamicLib/like"
    4. }
    5. }

    代码示例

    • SWAN
    • JS
    
     
    1. <custom chineseName="点赞" engName="like"></custom>
    2. <view class="container">
    3. <view class="card-area">
    4. <view class="top-description border-bottom">图标按钮样式</view>
    5. <view class="button-box">
    6. <smt-like
    7. class="custom-class"
    8. like-param="{{likeParam}}"
    9. bind:error="error"
    10. bind:success="clicksucc">
    11. </smt-like>
    12. <smt-like
    13. icon-type="heart"
    14. like-param="{{likeParam}}"
    15. bind:error="error">
    16. </smt-like>
    17. </view>
    18. </view>
    19. <view class="card-area">
    20. <view class="top-description border-bottom">组合按钮样式</view>
    21. <view class="button-box button-box-mixture">
    22. <smt-like
    23. class="custom-class-mixture"
    24. mode="mixture"
    25. like-param="{{likeParam}}"
    26. like-text="{{likeText}}"
    27. bind:error="error">
    28. </smt-like>
    29. <smt-like
    30. class="custom-class-mixture"
    31. likeNum="12"
    32. mode="mixture"
    33. icon-type="heart"
    34. like-param="{{likeParam}}"
    35. like-text="{{likeText}}"
    36. bind:error="error">
    37. </smt-like>
    38. <smt-like
    39. class="custom-class-mixture"
    40. mode="mixture"
    41. style="border"
    42. like-param="{{likeParam}}"
    43. like-text="{{likeText}}"
    44. bind:error="error">
    45. </smt-like>
    46. <smt-like
    47. mode="mixture"
    48. likeNum="12"
    49. style="border"
    50. icon-type="heart"
    51. like-param="{{likeParam}}"
    52. bind:error="error">
    53. </smt-like>
    54. </view>
    55. </view>
    56. <view class="card-area">
    57. <view class="top-description border-bottom">动效组合样式1</view>
    58. <view class="button-box button-box-mix">
    59. <view class="button-item">
    60. <smt-like
    61. animation-type="{{0}}"
    62. like-param="{{likeParam}}"
    63. bind:success="clicksucc"
    64. bind:error="error">
    65. </smt-like>
    66. <view class="button-tip">无动效</view>
    67. </view>
    68. <view class="button-item">
    69. <smt-like
    70. like-param="{{likeParam}}"
    71. bind:success="clicksucc"
    72. bind:error="error">
    73. </smt-like>
    74. <view class="button-tip">轻动效</view>
    75. </view>
    76. <view class="button-item">
    77. <smt-like
    78. animation-type="{{2}}"
    79. like-param="{{likeParam}}"
    80. bind:success="clicksucc"
    81. bind:error="error">
    82. </smt-like>
    83. <view class="button-tip">强动效</view>
    84. </view>
    85. </view>
    86. </view>
    87. <view class="card-area">
    88. <view class="top-description border-bottom">动效组合样式2</view>
    89. <view class="button-box button-box-mix">
    90. <view class="button-item">
    91. <smt-like
    92. icon-type="heart"
    93. animation-type="{{0}}"
    94. like-param="{{likeParam}}"
    95. bind:success="clicksucc"
    96. bind:error="error">
    97. </smt-like>
    98. <view class="button-tip">无动效</view>
    99. </view>
    100. <view class="button-item">
    101. <smt-like
    102. icon-type="heart"
    103. like-param="{{likeParam}}"
    104. bind:success="clicksucc"
    105. bind:error="error">
    106. </smt-like>
    107. <view class="button-tip">轻动效</view>
    108. </view>
    109. <view class="button-item">
    110. <smt-like
    111. icon-type="heart"
    112. animation-type="{{2}}"
    113. like-param="{{likeParam}}"
    114. bind:success="clicksucc"
    115. bind:error="error">
    116. </smt-like>
    117. <view class="button-tip">强动效</view>
    118. </view>
    119. </view>
    120. </view>
    121. <view class="card-area">
    122. <view class="top-description border-bottom">点击提示反馈</view>
    123. <view class="button-box">
    124. <smt-like
    125. is-show-toast="{{true}}"
    126. like-param="{{likeParam}}"
    127. bind:success="clicksucc"
    128. bind:error="error">
    129. </smt-like>
    130. </view>
    131. </view>
    132. <view class="space"></view>
    133. </view>
    
     
    1. Page({
    2. data: {
    3. likeParam: {}
    4. },
    5. onLoad() {
    6. const pageStack = getCurrentPages();
    7. const currentPage = pageStack[pageStack.length - 1];
    8. const privateProperties = currentPage.privateProperties || {};
    9. const currentUri = privateProperties.accessUri || currentPage.uri;
    10. const snid = 'test_snid';
    11. this.setData('likeParam', {
    12. snid: snid,
    13. spid: '' + Date.now(),
    14. openid: 'mVMFstfXtsndgnRObr7BoP9hoL',
    15. title: '我是文章标题',
    16. path: currentUri + '&snid=' + snid
    17. });
    18. },
    19. error() {
    20. // 在使用 npm 方式引入点赞组件时,点击按钮时在用户未登录状态下会触发此事件,建议提前引导用户完成登录
    21. }
    22. });

    Bug & Tip

    • Tip:只有登录用户才能进行对文章内容或者评论内容的点赞。
    • Tip:只有小程序使用点赞组件后,被点赞的用户才能收到消息通知。
    • Tip:like-param 点赞服务参数中,snid 和 path 是一一对应,能保证点赞服务的可用性。

    未经允许不得转载:九八云安全 » 九八云百度小程序教程:like 点赞