我们使用融云开发的项目, 但我们有一个需求是, 把图片不要上传到融云的服务器, 而是自己的服务器.于是就咨询了一下技术支持.
被告知有一个接口方法完全可以满足我们的需求.
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() {
复制代码
public void onAttached(Message message, RongIMClient.UploadImageStatusListener watcher) {
复制代码
// 这里是自己上传图片的逻辑, 图片的路径可以通过 message 中进行获取.
复制代码
//watcher 这个参数主要是用于把自己的上传状态同步给 sdk. 这样我们就可以使用 sdk 内部的默认逻辑, 包括界面.
复制代码
public void onError(Message message, RongIMClient.ErrorCode code) {
复制代码
public void onSuccess(Message message) {
复制代码
public void onProgress(Message message, int progress) {
复制代码
这样就可以继续使用 IMkit 的界面以及其他逻辑, 只是在 onAttached 中编写我们的上传逻辑并使用 watcher 上传的进度、成功或失败状态同步给 sdk 即可.
评论