createImageMessageByURL
功能介绍
说明
需要自行存储资源时,通过api上传图片并获取下载地址后创建图片消息。
注意
通过该api创建的消息必须通过sendMessageNotOss发送。
- iOS
- Android
- Flutter
- uni-app
- Browser/Electron/MiniProgram
- React-Native
- Unity
函数原型
Future<Message> createImageMessageByURL({
required String sourcePath,
required PictureInfo sourcePicture,
required PictureInfo bigPicture,
required PictureInfo snapshotPicture,
String? operationID,
})
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
sourcePath | String | 是 | 图片在本机的绝对路径,如果没有传空字符即可 |
sourcePicture | PictureInfo | 是 | 原图相关信息 |
bigPicture | PictureInfo | 是 | 大图相关信息 |
snapshotPicture | PictureInfo | 是 | 缩略图相关信息 |
返回结果
名称 | 类型 | 描述 |
---|---|---|
~ | Message | 成功返回 |
代码示例
Message msg = await OpenIM.iMManager.messageManager.createImageMessageByURL(sourcePath: '', sourcePicture: sourcePicture, bigPicture: bigPicture, snapshotPicture: snapshotPicture);
//todo
函数原型
+ (OIMMessageInfo *)createImageMessageByURL:(NSString *)sourcePath
sourcePicture:(OIMPictureInfo *)source
bigPicture:(OIMPictureInfo *)big
snapshotPicture:(OIMPictureInfo *)snapshot;
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
sourcePath | String | 是 | 图片在本机的绝对路径,如果没有传空字符即可 |
source | OIMPictureInfo | 是 | 原图相关信息 |
big | OIMPictureInfo | 是 | 大图相关信息 |
snapshot | OIMPictureInfo | 是 | 缩略图相关信息 |
返回结果
名称 | 类型 | 描述 |
---|---|---|
message | OIMMessageInfo | 成功返回 |
代码示例
OIMPictureInfo *source = [OIMPictureInfo new];
source.url = @"";
OIMPictureInfo *big = [OIMPictureInfo new];
big.url = @"";
OIMPictureInfo *snapshot = [OIMPictureInfo new];
snapshot.url = @"";
OIMMessageInfo *message = [OIMMessageInfo createImageMessageByURL:sourcePath sourcePicture:source bigPicture:big snapshotPicture:snapshot];
函数原型
public Message createImageMessageByURL(PictureInfo sourcePicture, PictureInfo bigPicture, PictureInfo snapshotPicture)
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
sourcePicture | PictureInfo | 是 | 原图相关信息 |
bigPicture | PictureInfo | 是 | 大图相关信息 |
snapshotPicture | PictureInfo | 是 | 缩略图相关信息 |
返回结果
名称 | 类型 | 描述 |
---|---|---|
~ | Message | 成功返回 |
代码示例
Message Message= OpenIMClient.getInstance().messageManager. createImageMessageByURL( sourcePicture, bigPicture, snapshotPicture)
函数原型
IMSDK.createImageMessageByURL({
sourcePicture: PicBaseInfo;
bigPicture: PicBaseInfo;
snapshotPicture: PicBaseInfo;
sourcePath: string;
}, operationID?: string): Promise<WsResponse<MessageItem>>
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
sourcePicture | PicBaseInfo | 是 | 原图相关信息 |
bigPicture | PicBaseInfo | 是 | 大图相关信息 |
snapshotPicture | PicBaseInfo | 是 | 缩略图相关信息 |
sourcePath | 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 { getSDK } from '@openim/client-sdk';
// const IMSDK = getSDK();
const picBaseInfo = {
uuid: "uuid",
type: "png",
size: 1024,
width: 1024,
height: 1024,
url: "http://xxx.com/xxx.png", // 需要通过sendMessageByBuffer发送时,填空字符串
}
IMSDK.createImageMessage({
sourcePicture: picBaseInfo;
bigPicture: picBaseInfo;
snapshotPicture: picBaseInfo;
sourcePath: string;
})
.then(({ data }) => {
// 调用成功
})
.catch(({ errCode, errMsg }) => {
// 调用失败
});
函数原型
IMSDK.asyncApi('createImageMessageByURL', operationID: string, {
sourcePicture: PicBaseInfo;
bigPicture: PicBaseInfo;
snapshotPicture: PicBaseInfo;
sourcePath: string;
}): Promise<MessageItem>
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
operationID | string | 是 | 操作 ID,用于定位问题,保持唯一,建议用当前时间和随机数 |
sourcePicture | PicBaseInfo | 是 | 原图相关信息 |
bigPicture | PicBaseInfo | 是 | 大图相关信息 |
snapshotPicture | PicBaseInfo | 是 | 缩略图相关信息 |
sourcePath | string | 是 | 图片在本机的绝对路径,如果没有传空字符即可 |
返回结果
通过
openim-uniapp-polyfill
包将函数 Promise 化,调用时需要使用then
和catch
判断并处理成功和失败回调。
参数名称 | 参数类型 | 描述 |
---|---|---|
Promise.then() | Promise<MessageItem> | 调用成功回调 |
Promise.catch() | Promise<CatchResponse> | 调用失败回调 |
代码示例
import IMSDK from 'openim-uniapp-polyfill';
const picBaseInfo = {
uuid: 'uuid',
type: 'png',
size: 1024,
width: 1024,
height: 1024,
url: 'http://xxx.com/xxx.png',
};
IMSDK.asyncApi(
'createImageMessageByURL',
IMSDK.uuid(),
{
sourcePicture: picBaseInfo;
bigPicture: picBaseInfo;
snapshotPicture: picBaseInfo;
sourcePath: ""
}
)
.then((data) => {
// 调用成功
})
.catch(({ errCode, errMsg }) => {
// 调用失败
});
函数原型
OpenIMSDKRN.createImageMessageByURL({
sourcePicture: PicBaseInfo,
bigPicture: PicBaseInfo,
snapshotPicture: PicBaseInfo,
}, operationID: string): Promise<MessageItem>
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
sourcePicture | PicBaseInfo | 是 | 原图相关信息 |
bigPicture | PicBaseInfo | 是 | 大图相关信息 |
snapshotPicture | PicBaseInfo | 是 | 缩略图相关信息 |
sourcePath | string | 是 | 图片在本机的绝对路径,如果没有传空字符即可 |
operationID | string | 是 | 操作 ID,用于定位问题,保持唯一,建议用当前时间和随机数 |
返回结果
参数名称 | 参数类型 | 描述 |
---|---|---|
Promise.then() | Promise<MessageItem> | 调用成功回调 |
Promise.catch() | Promise<CatchResponse> | 调用失败回调 |
代码示例
import OpenIMSDKRN from "open-im-sdk-rn";
const picBaseInfo = {
uuid: 'uuid',
type: 'png',
size: 1024,
width: 1024,
height: 1024,
url: 'http://xxx.com/xxx.png',
};
OpenIMSDKRN.createImageMessageByURL({
sourcePicture: picBaseInfo,
bigPicture: picBaseInfo,
snapshotPicture: picBaseInfo,
sourcePath: ""
}, 'operationID')
.then((data) => {
// 调用成功
})
.catch(({ errCode, errMsg }) => {
// 调用失败
});
函数原型
public static Message CreateImageMessageByURL(string sourcePath, PictureBaseInfo sourcePicture, PictureBaseInfo bigPicture, PictureBaseInfo snapshotPicture)
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
sourcePath | string | 是 | 图片在本机的绝对路径,如果没有传空字符即可 |
sourcePicture | PictureInfo | 是 | 原图相关信息 |
bigPicture | PictureInfo | 是 | 大图相关信息 |
snapshotPicture | PictureInfo | 是 | 缩略图相关信息 |
返回结果
名称 | 类型 | 描述 |
---|---|---|
~ | Message | 成功返回 |
代码示例
var msg = IMSDK.CreateImageMessageByURL(sourcePath,sourcePicture, bigPicture, snapshotPicture);