createFileMessageByURL
功能介绍
说明
需要自行存储资源时,自行通过api上传文件并获取下载地址后调用此api创建文件消息。
注意
通过该api创建的消息必须通过sendMessageNotOss发送。
- iOS
- Android
- Flutter
- uni-app
- Browser/Electron/MiniProgram
- React-Native
- Unity
函数原型
Future<Message> createFileMessageByURL({
required FileElem fileElem,
String? operationID,
})
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
fileElem | FileElem | 是 | 绝对路径 |
返回结果
名称 | 类型 | 描述 |
---|---|---|
~ | Message | 成功返回 |
代码示例
Message msg = await OpenIM.iMManager.messageManager.createFileMessageByURL(fileElem: FileElem());
//todo
函数原型
+ (OIMMessageInfo *)createFileMessageByURL:(NSString *)fileURL
fileName:(NSString * _Nullable)fileName
size:(NSInteger)size;
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
fileURL | NSString | 是 | 绝对路径 |
fileName | NSString | 否 | 文件名字 |
size | NSInteger | 是 | 文件大小 |
返回结果
名称 | 类型 | 描述 |
---|---|---|
message | OIMMessageInfo | 成功返回 |
代码示例
OIMMessageInfo *message = [OIMMessageInfo createFileMessageByURL:@"" fileName:nil, size:1];
函数原型
public Message createFileMessageByURL(FileElem fileElem)
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
fileElem | FileElem | 是 | 绝对路径 |
返回结果
名称 | 类型 | 描述 |
---|---|---|
~ | Message | 成功返回 |
代码示例
Message Message= OpenIMClient.getInstance().messageManager.createFileMessageByURL( fileElem)
函数原型
IMSDK.createFileMessageByURL({
filePath: string;
fileName: string;
uuid: string;
sourceUrl: string;
fileSize: number;
fileType?: string;
}, operationID?: string): Promise<WsResponse<MessageItem>>
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
filePath | string | 是 | 文件路径,传空字符串即可 |
fileName | string | 是 | 文件名称 |
uuid | string | 是 | 文件唯一 ID |
sourceUrl | string | 是 | 图片下载地址,自行上文件并通过sendMessageNotOss 发送时,需要传入远程 url,否则为空字符串 |
fileSize | string | 是 | 文件大小 |
fileType | string | 是 | 文件类型,一般为后缀名 |
返回结果
参数名称 | 参数类型 | 描述 |
---|---|---|
Promise.then() | Promise<WsResponse<MessageItem>> | 调用成功回调 |
Promise.catch() | Promise<WsResponse> | 调用失败回调 |
代码示例
import { getSDK } from '@openim/wasm-client-sdk';
const IMSDK = getSDK();
// use in electron with ffi
// import { getWithRenderProcess } from '@openim/electron-client-sdk/lib/render';
// const { instance: IMSDK } = getWithRenderProcess();
// use in mini program
// import { OpenIMSDK } from 'open-im-sdk';
// const IMSDK = new OpenIMSDK();
IMSDK.createFileMessageByURL({
filePath: '',
fileName: 'fileName.mp4',
uuid: 'uuid',
sourceUrl: '',
fileSize: 1024,
fileType: 'mp4',
})
.then(({ data }) => {
// 调用成功
})
.catch(({ errCode, errMsg }) => {
// 调用失败
});
函数原型
IMSDK.asyncApi('createFileMessageByURL', operationID: string, {
filePath: string;
fileName: string;
uuid: string;
sourceUrl: string;
fileSize: number;
fileType: string;
}): Promise<MessageItem>
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
operationID | string | 是 | 操作 ID,用于定位问题,保持唯一,建议用当前时间和随机数 |
filePath | string | 是 | 文件路径,传空字符串即可 |
fileName | string | 是 | 文件名称 |
uuid | string | 是 | 文件唯一 ID |
sourceUrl | string | 是 | 图片下载地址,自行上文件后获得的远程 url 地址,需要通过sendMessageNotOss 发送 |
fileSize | string | 是 | 文件大小 |
fileType | string | 是 | 文件类型,一般为后缀名 |
返回结果
通过
openim-uniapp-polyfill
包将函数 Promise 化,调用时需要使用then
和catch
判断并处理成功和失败回调。
名称 | 类型 | 描述 |
---|---|---|
~ | Message | 成功返回 |
代码示例
import IMSDK from 'openim-uniapp-polyfill';
IMSDK.asyncApi('createFileMessageByURL', IMSDK.uuid(), {
filePath: '',
fileName: 'fileName.mp4',
uuid: 'uuid',
sourceUrl: 'https://sourceUrl.mp4',
fileSize: 1024,
fileType: 'mp4',
})
.then((data) => {
// 调用成功
})
.catch(({ errCode, errMsg }) => {
// 调用失败
});
函数原型
OpenIMSDKRN.createFileMessageByURL( {
filePath: string,
fileName: string,
uuid: string,
sourceUrl: string,
fileSize: number,
fileType: string,
}, operationID: string): Promise<MessageItem>
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
filePath | string | 是 | 文件路径,传空字符串即可 |
fileName | string | 是 | 文件名称 |
uuid | string | 是 | 文件唯一 ID |
sourceUrl | string | 是 | 图片下载地址,自行上文件后获得的远程 url 地址,需要通过sendMessageNotOss 发送 |
fileSize | string | 是 | 文件大小 |
fileType | string | 是 | 文件类型,一般为后缀名 |
operationID | string | 是 | 操作 ID,用于定位问题,保持唯一,建议用当前时间和随机数 |
返回结果
参数名称 | 参数类型 | 描述 |
---|---|---|
Promise.then() | Promise<MessageItem> | 调用成功回调 |
Promise.catch() | Promise<CatchResponse> | 调用失败回调 |
代码示例
import OpenIMSDKRN from "open-im-sdk-rn";
OpenIMSDKRN.createFileMessageByURL({
filePath: '',
fileName: 'fileName.mp4',
uuid: 'uuid',
sourceUrl: 'https://sourceUrl.mp4',
fileSize: 1024,
fileType: 'mp4',
}, 'operationID')
.then((data) => {
// 调用成功
})
.catch(({ errCode, errMsg }) => {
// 调用失败
});