uni-app uniImCo.sendMsg error: SYS_ERR [uni-im-co] 用户函数代码语法或逻辑异常

发布于 1周前 作者 itying888 来自 Uni-App

uni-app uniImCo.sendMsg error: SYS_ERR [uni-im-co] 用户函数代码语法或逻辑异常

类别 信息
产品分类 uniapp/App
PC开发环境 Windows
PC开发环境版本 Windows10
HBuilderX类型 正式
HBuilderX版本 4.01
手机系统 Android
手机系统版本 Android 14
手机厂商 华为
手机机型 meta30
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

sendMsg(data, callback) {  
    // console.log('sendMsg-sendMsg-sendMsg', data);  
    const uniImCo = uniCloud.importObject('uni-im-co', {  
            customUI: true  
    });  
    // 接收消息的appId,默认为当前应用的appId。如果你是2个不同appId的应用相互发,请修改此值为相对的appId  
    //data.appId = this.systemInfo.appId  
    data.appId = uni.getSystemInfoSync().appId;  
    // 拿到当前消息的索引值  
    let index = this.conversation.msgList.findIndex(i => i.unique_id == data.unique_id)  
    data = Object.assign({}, data)  
    uniImCo.sendMsg(data)  
            .then(e => {  
                    // console.log('uniImCo.sendMsg',{e,data});  
                    data.state = e.errCode === 0 ? 100 : -100;  
                    data.create_time = e.data.create_time;  
                    data._id = e.data._id;  
                    this.conversation.msgList.splice(index, 1, data)  
                    this.conversation.msgManager.localMsg.update(data.unique_id, data)  
            })  
            .catch(e => {  
                    uni.showModal({  
                            content: e.message,  
                            showCancel: false,  
                            confirmText: '关闭',  
                    });  
                    console.log('uniImCo.sendMsg error:', e.errCode, e.message);  
                    // 必须要有create_time的值,否则indexDB通过创建时间索引找不到数据  
                    data.create_time = Date.now();  
                    data.state = -200;  
                    this.conversation.msgList.splice(index, 1, data)  
                    this.conversation.msgManager.localMsg.update(data.unique_id, data)  
            })  
            .finally(e => {  
                    if (callback) {  
                            callback(e);  
                    }  
            });  
}

操作步骤:

  • 发送信息

预期结果:

  • 发送成功

实际结果:

  • 报错提示:
    uniImCo.sendMsg error: SYS_ERR [uni-im-co]: 用户函数代码语法或逻辑异常

bug描述:

  • uniImCo.sendMsg error: SYS_ERR [uni-im-co]: 用户函数代码语法或逻辑异常

Image


5 回复

+1,同样遇到


请问解决了么

请问解决了么

报错提示太坑了,我的是表权限问题

在使用 uni-appuniImCo.sendMsg 方法时,如果遇到 SYS_ERR [uni-im-co] 用户函数代码语法或逻辑异常 的错误提示,通常是由于以下几种原因导致的:

1. 参数传递错误

  • sendMsg 方法需要传递正确的参数,如果参数类型或格式不正确,可能会导致错误。
  • 确保你传递的参数符合 API 文档的要求。例如,sendMsg 可能需要一个包含 tocontent 等字段的对象。
uniImCo.sendMsg({
    to: 'user_id',
    content: 'Hello, World!'
}).then(res => {
    console.log('消息发送成功', res);
}).catch(err => {
    console.error('消息发送失败', err);
});

2. 异步处理问题

  • 如果你在发送消息的代码中使用了异步操作(如 async/awaitPromise),请确保正确处理了异步流程。
  • 例如,确保在 async 函数中使用 await 来等待 sendMsg 的结果。
async function sendMessage() {
    try {
        const res = await uniImCo.sendMsg({
            to: 'user_id',
            content: 'Hello, World!'
        });
        console.log('消息发送成功', res);
    } catch (err) {
        console.error('消息发送失败', err);
    }
}

3. 代码逻辑错误

  • 检查你的代码逻辑,确保没有语法错误或逻辑错误。
  • 例如,确保变量已正确声明和初始化,函数调用顺序正确等。

4. SDK 版本问题

  • 确保你使用的 uni-app SDK 或插件是最新版本,旧版本可能存在已知的 Bug。
  • 更新到最新版本后,重新编译并运行项目。

5. 网络或服务器问题

  • 如果网络连接不稳定或服务器端出现问题,也可能导致消息发送失败。
  • 检查网络连接,并确保服务器端服务正常运行。

6. 权限问题

  • 确保你的应用有权限发送消息。某些平台可能需要特定的权限或配置才能发送消息。

7. 调试和日志

  • 使用 console.log 或调试工具逐步检查代码的执行流程,找出错误的具体位置。
  • 查看控制台日志,获取更多关于错误的详细信息。

示例代码

uniImCo.sendMsg({
    to: 'user_id',
    content: 'Hello, World!'
}).then(res => {
    console.log('消息发送成功', res);
}).catch(err => {
    console.error('消息发送失败', err);
});
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!