uni-app uni-im发送消息就报错

uni-app uni-im发送消息就报错

开发环境 版本号 项目创建方式
Windows 10 HBuilderX

操作步骤:

  • 不设置nickname发消息

预期结果:

  • 发送成功

实际结果:

  • 报错

bug描述:

uni-im一发消息就报错:uniImCo.sendMsg error:, unicloud throw error, Cannot read properties of undefined (reading ‘slice’)

我自己整明白了,是uni-im-co云函数的msg.js的772行

title = msgData.type == 'system'? '系统消息' : nickname.slice(0, 20)

更多关于uni-app uni-im发送消息就报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

uni-im项目的用户必须有昵称,你可以给用户生成默认昵称,或者在uni-im-co云函数的msg.js的772行 try catch,把用户的手机号码/邮箱等资料脱敏后使用

更多关于uni-app uni-im发送消息就报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html


根据错误信息分析,这是uni-im组件在发送消息时由于未设置nickname导致的空指针异常。具体问题出在msg.js第772行代码对nickname变量直接调用slice方法时,nickname为undefined。

解决方案:

  1. 发送消息前必须设置nickname
  2. 或者修改云函数代码,增加空值判断:
title = msgData.type == 'system' ? '系统消息' : (nickname || '').slice(0, 20)
回到顶部