我们使用融云开发的项目, 但我们有一个需求是, 把图片不要上传到融云的服务器, 而是自己的服务器.于是就咨询了一下技术支持.

被告知有一个接口方法完全可以满足我们的需求.

ImageMessage imageMessage = ImageMessage.obtain(Uri.parse(FILEPATH), Uri.parse(FILEPATH));
configSendMessage(imageMessage);
Message message = Message.obtain(mTargetId,mConversationType,imageMessage);
RongIM.getInstance().sendImageMessage(message, "pushcontent", "pushdata",
new RongIMClient.SendImageMessageWithUploadListenerCallback() {
@Override
public void onAttached(Message message, RongIMClient.UploadImageStatusListener watcher) {
// 这里是自己上传图片的逻辑, 图片的路径可以通过 message 中进行获取.
//watcher 这个参数主要是用于把自己的上传状态同步给 sdk. 这样我们就可以使用 sdk 内部的默认逻辑, 包括界面.
}

@Override
public void onError(Message message, RongIMClient.ErrorCode code) {

}

@Override
public void onSuccess(Message message) {

}

@Override
public void onProgress(Message message, int progress) {

}
});

这样就可以继续使用 IMkit 的界面以及其他逻辑, 只是在 onAttached 中编写我们的上传逻辑并使用 watcher 上传的进度、成功或失败状态同步给 sdk 即可.


融云RongCloud
82 声望1.2k 粉丝

因为专注,所以专业