- Android
- iOS
开发者可以自定义媒体消息(MediaMessageContent)的上传,接管上传逻辑,将文件上传到自己的文件服务器。
示例代码
JIM.getInstance().getMessageManager().setMessageUploadProvider(this);
// 开发者实现上传方法
@Override
public void uploadMessage(Message message, UploadCallback uploadCallback) {
Handler mH = new Handler(Looper.getMainLooper());
mH.postDelayed(new Runnable() {
@Override
public void run() {
//模拟上传进度回调
uploadCallback.onProgress(50);
}
}, 100);
mH.postDelayed(new Runnable() {
@Override
public void run() {
//上传逻辑
if (true) {
//上传成功
MediaMessageContent content = (MediaMessageContent) message.getContent();
content.setUrl("xxxxxx");//上传的文件 url
uploadCallback.onSuccess(message);
} else {
//上传失败
uploadCallback.onError();
}
}
}, 1000);
}
开发者可以自定义媒体消息(MediaMessageContent)的上传,接管上传逻辑,将文件上传到自己的文件服务器。
示例代码
[JIM.shared.messageManager setMessageUploadProvider:self];
// 开发者实现上传方法
- (void)uploadMessage:(JMessage *)message
progress:(void (^)(int))progressBlock
success:(void (^)(JMessage * _Nonnull))successBlock
error:(void (^)(void))errorBlock cancel:(void (^)(void))cancelBlock {
dispatch_async(dispatch_get_global_queue(0, 0), ^{
//模拟上传进度回调
progressBlock(50);
});
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_global_queue(0, 0), ^{
if (YES) {
//上传成功
JMediaMessageContent *content = (JMediaMessageContent *)message.content;
content.url = @"xxx";//上传的文件 url
successBlock(message);
} else {
//上传失败
errorBlock();
}
});
}