融云发送不显示缩略图解决方法

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

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;
        }
       

}




posted @ 2016-01-27 10:50  东师理想--周枫  阅读(909)  评论(0编辑  收藏  举报