z***@163.com
z***@163.com
  • 发布:2026-05-07 19:13
  • 更新:2026-05-07 19:14
  • 阅读:14

【报Bug】鸿蒙系统在含有部分emoji的组件中点击不生效

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 26200.8328

HBuilderX类型: 正式

HBuilderX版本号: 5.07

第三方开发者工具版本号: 2.01.2510260 win32-x64

基础库版本号: 3.15.1

项目创建方式: HBuilderX

操作步骤:

点击组件

预期结果:

可正常触发点击事件

实际结果:

无法触发点击事件

bug描述:

如果组件内包含特殊emoji (例子中为 class="group-name" , name为"? 新丁香管理总群" ), 在鸿蒙系统(版本见上传截图)上会导致整个组件的点击事件失效. 使用微信小程序原生组件无此问题.

❌️uni-app 有问题代码:

<view class="group-list">  
            <view v-for="(item, index) in displayList" :key="item.id" class="modern-card" hover-class="card-hover" @click="routPage(item)">  
                <view class="card-layout">  

                    <!-- 左侧:统一品牌色头像 -->  
                    <view class="avatar-wrap">  
                        <view class="avatar-box brand-avatar">  
                            {{ getAvatarChar(item.realName) }}  
                        </view>  
                    </view>  

                    <!-- 中间:核心内容 -->  
                    <view class="main-content">  
                        <view class="title-row">  
                            <text class="group-name">{{ item.realName || '未命名群组' }}</text>  
                            <!-- 状态胶囊移动至标题右侧,确保视觉重心统一 -->  
                            <view class="status-pill" :class="isNormalStatus(item) ? 'pill-success' : 'pill-danger'">  
                                {{ getStatusText(item.grStatus, item.botStatus, item.srvExpTime) }}  
                            </view>  
                        </view>  

                        <!-- 底部元数据:修复对齐与重叠 -->  
                        <view class="meta-row">  
                            <view class="meta-cell">  
                                <uni-icons type="person" size="14" color="#94A3B8" class="meta-icon"></uni-icons>  
                                <view class="meta-val">{{ item.masterName || '未知' }}</view>  
                            </view>  

                            <view class="meta-cell date-cell">  
                                <template v-if="isExpiring(item.srvExpTime)">  
                                    <view class="expiring-badge" :class="{'expired-badge': getRawExpDays(item.srvExpTime) < 0}">  
                                        <text class="expiring-text" :class="{'expired-text': getRawExpDays(item.srvExpTime) < 0}">  
                                            {{ getRawExpDays(item.srvExpTime) < 0 ? '已到期' : '⏳ 仅剩 ' + getRawExpDays(item.srvExpTime) + ' 天' }}  
                                        </text>  
                                    </view>  
                                    <view class="renew-btn" @click.stop="goToPay(item)">立即续费</view>  
                                </template>  
                                <template v-else>  
                                    <uni-icons type="calendar" size="14" color="#94A3B8" class="meta-icon"></uni-icons>  
                                    <view class="meta-val">{{ formatDate(item.srvExpTime) }}</view>  
                                </template>  
                            </view>  
                        </view>  
                    </view>  

                </view>  
            </view>  
        </view>

✅️微信小程序 无问题代码:

<template>  
  <view class="container">  
    <view style="padding: 20rpx; font-size: 28rpx; color: #666;">  
      {{msg1}}  
    </view>  
    <view style="padding: 20rpx; font-size: 28rpx; color: #666;">  
      {{msg2}}  
    </view>  

    <view style="margin-top: 40rpx;">  
      <test-card :name="emojiName"></test-card>  
      <test-card name="Normal Group"></test-card>  
    </view>  
  </view>  
</template>  

<script>  
export default {  
  data() {  
    return {  
      msg1: "这是 uni-app 页面,使用原生组件测试。",  
      msg2: "如果原生卡片能点,说明是 uni-app 事件机制问题。",  
      emojiName: "? 新丁香管理总群"  
    };  
  }  
};  
</script>
2026-05-07 19:13 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app鸿蒙化技术交流群 ) 咨询,群中有相关专业的管理员和群友。

感谢你提交的这个 bug 反馈,我对你反馈的内容进行了详细的评审,具体情况如下:

1. 关于反馈内容的完整性分析

  • BUG 描述:描述清晰。明确指出了问题出现的平台(鸿蒙系统)、问题的关键触发条件(包含特殊 emoji 的文本内容,例如 ? 新丁香管理总群)、具体表现(整个组件的点击事件失效),并且提供了与微信小程序原生组件无问题的对比,这点非常有助于定位问题。

  • 代码示例:提供的代码示例能清晰地展示问题场景,但不够完整,无法直接运行。你提供的是一段业务代码片段,虽然包含了关键的 @click 事件绑定和 emoji 内容,但缺少数据定义、方法实现等上下文。为了使官方人员能更高效地复现问题,建议提供一个最小可复现 demo。例如,创建一个单页面,包含一个绑定点击事件的 view,其内部文本固定为 ? 新丁香管理总群,这样可以直接运行并观察效果。

  • 复现步骤:“点击组件” 这一步骤过于简单。虽然结合描述可以理解,但为了严谨,建议细化。例如:“在鸿蒙设备上运行包含上述代码片段的 uni-app 项目,点击 class 为 group-name 且文本内容为 ? 新丁香管理总群 的组件,观察是否触发点击事件。”

  • 预期结果与实际情况:预期结果合理,即正常触发点击事件。实际结果描述也符合 bug 的表象。结合对比测试,目前看并非误报。

  • 分类信息:提供了 PC 操作系统和 HBuilderX 版本(5.07),但缺少关键的复现环境信息。你需要补充完整的鸿蒙系统版本号测试的设备机型,这对于排查特定系统版本的兼容性问题至关重要。

2. 关于 Bug 是否成立的分析

经过检索知识库,我没有找到关于“鸿蒙系统上特定 emoji 导致点击事件失效”的明确说明或已知问题记录。同时,你在反馈中提供了关键的对比信息:微信小程序原生组件无此问题。这增加了这是一个 uni-app 框架在鸿蒙平台上存在的特定兼容性问题的可能性。

综上,这个 bug 是成立的,可以初步判断为鸿蒙平台在处理特定 Unicode 字符(某些 emoji)时,可能影响了 uni-app 的事件绑定机制。

3. 关于是否涉及基本概念问题的分析

这个问题不涉及基本概念错误。你的代码用法符合 uni-app 规范,问题指向的是特定平台(鸿蒙)和特定字符(emoji)组合下的框架层表现。

结论与建议

感谢你提供如此清晰的对比测试和问题定位。这个反馈质量很高,对帮助我们改进鸿蒙平台的兼容性非常有价值。

  • 需要补充的信息:为了研发团队能准确复现并修复,请你补充测试时所使用的鸿蒙系统具体版本号以及设备机型
  • 后续建议:在官方修复此问题之前,你可以尝试以下临时替代方案:
    • 寻找替代方案:如果业务允许,可暂时移除或替换导致问题的这个特殊 emoji 字符。
    • 插件市场:你也可以前往 插件市场 搜索是否存在实现了类似功能的组件,看其是否能规避此问题。

我们会将此问题反馈给相关同事进行进一步验证。

内容为 AI 生成,仅供参考

要回复问题请先登录注册