微信小程序--小标提示未读信息红色角标的展示

本文介绍了一种在微信小程序中实现未读消息通知的方法,通过API获取未读消息数量并根据数量设置不同的角标显示方式,如具体数字、省略号或移除角标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要的原理,也是通过对微信小程序自带的方法进行一次二次的封装
三种情况:

  1. 0<当前未读消息<99,那么显示为多少多少+,
  2. 当前未读消息>99:显示为省略号
  3. 当前未读消息== 0 ,取消角标的设置
  getUserNotReadNum(){
    this.xAjax({
      url: api.getUserNotReadNumUrl,
      callBack(res){
        if (99 >= res.data.notReadNum && res.data.notReadNum!=0){
          wx.setTabBarBadge({
            index: 1,
            text: res.data.notReadNum+''
          })
        } else if (99<res.data.notReadNum){
          wx.setTabBarBadge({
            index: 1,
            text: '···'
          })
        } else if(res.data.notReadNum == 0) {
          wx.removeTabBarBadge({
            index: 1
          })
        }
        
      }
    })
  }
### 微信小程序自定义 tabBar 设置 #### 修改样式与配置 为了在微信小程序中为自定义 `tabBar` 添加功能,首先需要确保已启用自定义 `tabBar` 功能。这可以通过编辑项目根目录下的 `app.json` 文件来完成,在其中设置 `"custom": true"` 属性以开启自定义模式[^3]。 ```json { "window": { ... }, "tabBar": { "custom": true, "list": [ {"pagePath": "pages/index/index", "text": "首页"}, {"pagePath": "pages/logs/logs", "text": "日志"} ] } } ``` #### 创建自定义组件 接着,在项目的根目录下创建一个新的文件夹用于存放自定义的 `tabBar` 组件,并编写相应的 WXML 和 WXSS 文件。对于样式的调整可以像下面这样操作: ```css .van-tabbar-item__icon { --tabbar-item-margin-bottom: 0; } ``` #### 实现逻辑处理 为了让 `tabBar` 支持动态显示消息数或红点提示等功能,则可以在对应的 JS 文件内引入必要的 API 方法。例如通过调用 `wx.setTabBarBadge()` 来设定具体页面上的徽章文字;而当只需要简单地记某个选项卡有新通知时则可利用 `wx.showTabBarRedDot()` 函数[^2]。 下面是完整的 JavaScript 示例代码片段展示了如何监听全局变量的变化从而自动刷新指定位置处的消息计数器: ```javascript Component({ /** * 组件的属性列表 */ properties: { active: { type: Number, value: 0 } }, /** * 组件的初始数据 */ data: { tabs: { 0: "/pages/tabbar/home/home", 1: "/pages/tabbar/explore/explore", 3: "/pages/tabbar/trends/trends", 4: "/pages/tabbar/my/my" }, show: false, messageTotal: '', info: app.globalData.infoCount }, lifetimes: { ready() { const self = this; // 监听 app.js 中的信息数量变化事件 getApp().watch('infoCount', (newValue) => { let updatedInfo = newValue || ''; // 更新本地状态 self.setData({ info: updatedInfo }); // 如果当前激活的是第三个签页(假设索引从零开始) if(self.properties.active === 2){ wx.setTabBarBadge({ index: 2, text: String(updatedInfo), success(res) {}, fail(err) {} }); // 或者仅显示红色圆点而不带数字 /* wx.showTabBarRedDot({ index: 2, });*/ } }) } } }) ``` 此段脚本实现了对特定条件满足的情况下向第三项添加带有实际数值的通知图标的功能。当然也可以根据业务需求灵活替换为其他形式的通知方式如单纯的小红点等。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值