cczhoufeng

部分安卓手机在使用融云打包正式版后,发送图片不显示缩略图,解决方法如下:

1. 发送本地图片,rong.sendImageMessage的prepare,此时使用本地默认图片
2. 发送中,显示图片发送百分比,利用监听
3. 发送成功后,rong.getHistoryMessages 获取历史记录,参数:oldestMessageId : -1,count : 1
4. 根据返回值替换之前的默认图片src

/**
* 发送图片消息
* 周枫
* 2015.08.11
* @param {Object} sendMsg
*/
function sendPicture(p_c, target_id, img_url, extra, conversationType, callback) {
        //        $api.rmStorage(\'send_img_attrs\');
        //        api.alert({
        //                msg : JSON.stringify(img_attrs)
        //        }, function(ret, err) {
        //                //coding...
        //        });
        rong.sendImageMessage({
                conversationType : conversationType,
                targetId : target_id,
                imagePath : img_url,
                extra : extra
        }, function(ret, err) {
                if (ret.status == \'prepare\') {

                        var img_cache = ret.result.message.content.imageUrl;
//                        imageCache(img_cache, \'\', function(native_path) {
                                //单聊准备发送,向会话页面发送正在发送消息事件
                                api.sendEvent({
                                        name : \'insertSendMessage\',
                                        extra : {
                                                data : ret.result,
                                                img_url : img_cache
                                        }
                                })
                                //清除未读信息
                                //                                cleanMsg(ret.result.message.targetId, conversationType);
                                ret.result.message.content.nativePath = img_cache;
                                //存入会话数据库
                                sendMessageToDb(ret.result.message);
                               
//                        });
                } else if (ret.status == \'progress\') {
                        //                        console.log(\'jindu:\'+ret.result.progress);
                                                var msg_id = ret.result.message.messageId;
                                                var msg_pro = ret.result.progress;
                        //                        api.execScript({
                        //                                name : \'hh_chat_window\',
                        //                                frameName : \'hh_chat_frame\',
                        //                    script: \'setSendProgress(\'+msg_id+\',\'+msg_pro+\');\'
                        //          });
                                                api.sendEvent({
                                                                name : \'sednImgPropress\',
                                                                extra : {
                                                                        msg_id : msg_id,
                                                                        msg_pro : msg_pro
                                                                }
                                                        })
                        //
                } else if (ret.status == \'success\') {
                        var msg_id = ret.result.message.messageId;
                        getPicHttpPathByRongHis(msg_id, conversationType, target_id, function(is_true, data){
                                if(is_true) {
                                       
                                        var native_path = data[0].content.imageUrl;

                                        api.execScript({
                                                name : \'hh_chat_window\',
                                                frameName : \'hh_chat_frame\',
                                                script : \'removeload(\' + msg_id + \',\\'\'+ native_path +\'\\');\'
                                        });
                                        setTimeout(function(){
                                                //                        修改会话发送状态
                                                updateMsgsentImgStatusToDb(msg_id, target_id, \'SENT\', native_path);
                                        }, 300);
//                                       
                                        callback(true);
                                } else {
                                        api.toast({
                            msg:data
                    });
                    callback(false);
                                }
                        });
                       
                       
                       
                } else if (ret.status == \'error\') {
                        var err_code = err.code;
                        switch(err_code) {
                                case 30014:
                                        //                                        openNoticeLogout(\'服务器不可用,请检查网络状况后重新登录\');
                                        api.toast({
                                                msg : \'对不起,信息发送失败,请重新连接网络后再次发送\'
                                        });
                                        //                                        api.alert({
                                        //                                                msg : \'对不起,图片发送失败\'
                                        //                                        });
                                        break;
                                case 30003:
                                        api.toast({
                                                msg : \'对不起,信息发送失败,请重新连接网络后再次发送\'
                                        });
                                        //                                        api.alert({
                                        //                                                msg : \'对不起,图片发送失败,服务器超时\'
                                        //                                        });
                                        break;
                                case 31009:
                                        api.toast({
                                                msg : \'对不起,图片发送失败,您在对方黑名单中\'
                                        });
                                        //                                        api.alert({
                                        //                                                msg : \'对不起,图片发送失败,您在对方黑名单中\'
                                        //                                        });
                                        break;
                                case -10000:
                                        api.toast({
                                                msg : \'对不起,信息发送失败,请重新连接网络后再次发送\'
                                        });
                                        //                                        api.alert({
                                        //                                                msg : \'对不起,图片发送失败,未调用 init 方法进行初始化\'
                                        //                                        });
                                        break;
                                case -10001:
                                        api.toast({
                                                msg : \'对不起,信息发送失败,请重新连接网络后再次发送\'
                                        });
                                        //                                        api.alert({
                                        //                                                msg : \'对不起,图片发送失败,未调用 connect 方法进行连接\'
                                        //                                        });
                                        break;
                                case -10002:
                                        api.toast({
                                                msg : \'对不起,信息发送失败,请重新连接网络后再次发送\'
                                        });
                                        //                                        api.alert({
                                        //                                                msg : \'对不起,图片发送失败,输入参数错误\'
                                        //                                        });
                                        break;
                                case 22406:
                                        api.alert({
                                                msg : \'对不起,当前群组已经解散\'
                                        }, function(ret, err) {
                                                api.execScript({
                                                        name : \'hh_chat_window\',
                                                        frameName : \'hh_chat_frame\',
                                                        script : \'closeUiChatBox();\'
                                                });
                                        });

                                        break;
                                default :
                                        api.toast({
                                                msg : \'对不起,信息发送失败,请重新连接网络后再次发送\'
                                        });
                                        break;
                        }
                        var msg_id = ret.result.message.messageId;
                        //修改会话发送状态
                        setTimeout(function() {
                                updateMsgsentStatusToDb(msg_id, targetId, \'FAILED\');
                        }, 300);
                }
        });
}

 

function getPicHttpPathByRongHis(msg_id, conver_type, target_id, callback) {
        rong.getHistoryMessages({
                conversationType : conver_type,
                targetId : target_id,
                oldestMessageId : -1,
                count : 1
        }, function(ret, err) {
                if(ret.status == \'success\') {
                        callback(true, ret.result);
                } else {
                        callback(false, \'发送图片信息失败,请重新发送\');
                }
        })
}

 

/**
* 清除正在发送图标
* 周枫
* 2015.12.10
* @param {Object} msg_id
*/
function removeload(msg_id, native_path) {
        var load = $api.byId(\'status_\' + msg_id);
        $api.remove(load);
        if(native_path != \'\') {
                var img_pic = document.getElementById(\'send_img_\' + msg_id);
                img_pic.src = native_path;
        }
       

}




分类:

技术点:

相关文章:

  • 2021-10-20
  • 2021-08-14
  • 2021-06-23
  • 2022-12-23
  • 2021-10-13
  • 2022-12-23
  • 2021-08-01
  • 2021-05-11
猜你喜欢
  • 2021-12-07
  • 2021-08-24
  • 2022-01-10
  • 2021-04-05
  • 2021-05-29
  • 2021-08-02
  • 2021-07-07
  • 2021-07-18
相关资源
相似解决方案