sendMessageNotOss
Description
info
Send a message but do not upload the media. It is typically used for sending messages generated by CreateXXXMessageByURL.
Note
- You need to call createXXXMessageByURL first to create a message, then call this interface to send the message.
- If the user successfully uploaded the file to OSS and called this method, but the message sending failed, the client SDK can determine if a resend is needed based on
message.status. The SDK will not re-upload the file to OSS during the second send.
Related Callbacks:
onNewConversation
onConversationChanged
onRecvNewMessage
onRecvNewMessages
- iOS
- Android
- Flutter
- uni-app
- Browser/Electron/MiniProgram
- React-Native
- Unity
Function Prototype
Future<Message> sendMessageNotOss({
required Message message,
required OfflinePushInfo offlinePushInfo,
String? userID,
String? groupID,
String? operationID,
})
Input Parameters
| Parameter Name | Parameter Type | Required | Description |
|---|---|---|---|
| message | Message | Yes | Message body |
| userID | String | No | Receiving message user ID |
| groupID | String | No | Receiving message group ID |
| offlinePushInfo | OfflinePushInfo | No | Offline push info |
Return Result
| Name | Type | Description |
|---|---|---|
| ~ | Message | Success return |
Code Example
Message msg = await OpenIM.iMManager.messageManager.sendMessageNotOss(message: message, offlinePushInfo: offlinePushInfo);
// todo
Function Prototype
- (void)sendMessageNotOss:(OIMMessageInfo *)message
recvID:(NSString * _Nullable)recvID
groupID:(NSString * _Nullable)groupID
offlinePushInfo:(OIMOfflinePushInfo * _Nullable)offlinePushInfo
onSuccess:(nullable OIMMessageInfoCallback)onSuccess
onProgress:(nullable OIMNumberCallback)onProgress
onFailure:(nullable OIMFailureCallback)onFailure;
Input Parameters
| Parameter Name | Parameter Type | Required | Description |
|---|---|---|---|
| message | OIMMessageInfo | Yes | Message body |
| recvID | NSSting | No | Receiving message user ID |
| groupID | NSSting | No | Receiving message group ID |
| offlinePushInfo | OIMOfflinePushInfo | No | Offline push info |
Return Result
| Name | Type | Description |
|---|---|---|
| onSuccess | OIMMessageInfo | Success return |
| onProgress | NSInteger | Send progress |
| onFailure | OIMFailureCallback | Failure return |
Code Example
OIMMessageInfo *testMessage = [OIMMessageInfo createTextMessage:@"test"];
[OIMManager.manager sendMessageNotOss:testMessage
recvID:@""
groupID:@""
offlinePushInfo:nil
onSuccess:^(OIMMessageInfo * _Nullable message) {
} onProgress:^(NSInteger number) {
} onFailure:^(NSInteger code, NSString * _Nullable msg) {
}];
Function Prototype
public void sendMessageNotOss(OnMsgSendCallback base, Message message, String recvUid, String recvGid, OfflinePushInfo offlinePushInfo)
Input Parameters
| Parameter Name | Parameter Type | Required | Description |
|---|---|---|---|
| base | OnMsgSendCallback | Yes | callback |
| message | Message | Yes | Message body |
| userID | String | No | Receiving message user ID |
| groupID | String | No | Receiving message group ID |
| offlinePushInfo | OfflinePushInfo | No | Offline push info |
Return Result
| Name | Type | Description |
|---|---|---|
| ~ | Message | Success return |
Code Example
OpenIMClient.getInstance().messageManager.sendMessageNotOss( new OnMsgSendCallback(){
public void onError(int code, String error) {
//Send failed
}
public void onProgress(long progress) {
//Send progress
}
public void onSuccess(Message s) {
//Send success
}
}, message, recvUid, recvGid, offlinePushInfo);
Function Prototype
IMSDK.sendMessageNotOss({
recvID: string;
groupID: string;
offlinePushInfo?: OfflinePush;
message: MessageItem;
}, operationID?: string): Promise<WsResponse<MessageItem>>
Input Parameters
| Parameter Name | Parameter Type | Required | Description |
|---|---|---|---|
| message | MessageItem | Yes | Message body |
| recvID | string | Yes | Receiving message user ID, pass empty string when sending group message |
| groupID | string | Yes | Receiving message group ID, pass empty string when sending single chat message |
| offlinePushInfo | OfflinePushInfo | No | Offline push info |
Return Result
| Parameter Name | Parameter Type | Description |
|---|---|---|
| Promise.then() | Promise<WsResponse<MessageItem>> | Success callback |
| Promise.catch() | Promise<WsResponse> | Failure callback |
Code Example
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();
IMSDK.sendMessageNotOss({
recvID: "userID",
groupID: "",
message: {
// MessageItem
...
}
})
.then(({ data }) => {
// Call successful
})
.catch(({ errCode, errMsg }) => {
// Call failed
});
Function Prototype
IMSDK.asyncApi('sendMessageNotOss', operationID: string, {
recvID: string;
groupID: string;
offlinePushInfo?: OfflinePush;
message: MessageItem;
}): Promise<void>
Input Parameters
| Parameter Name | Parameter Type | Required | Description |
|---|---|---|---|
| operationID | string | Yes | Operation ID, used to pinpoint issues, keep unique, prefer time+random |
| message | MessageItem | Yes | Message body |
| recvID | string | Yes | Receiving message user ID, pass empty string when sending group message |
| groupID | string | Yes | Receiving message group ID, pass empty string when sending single chat message |
| offlinePushInfo | OfflinePushInfo | Yes | Offline push info |
Return Result
Use the
openim-uniapp-polyfillpackage to make the function Promise. When calling, you need to usethenandcatchto determine and handle success and failure callbacks.
| Parameter Name | Parameter Type | Description |
|---|---|---|
| Promise.then() | Promise<void> | Success callback |
| Promise.catch() | Promise<CatchResponse> | Failure callback |
Code Example
import IMSDK from 'openim-uniapp-polyfill';
IMSDK.asyncApi('sendMessageNotOss', IMSDK.uuid(), {
recvID: "userID",
groupID: "",
message: {
// MessageItem
...
},
offlinePushInfo: {
title: 'you have a new message',
desc: 'new message',
ex: '',
iOSPushSound: '+1',
iOSBadgeCount: true,
}
})
.then((data) => {
// Call successful
})
.catch(({ errCode, errMsg }) => {
// Call failed
});
Function Prototype
OpenIMSDK.sendMessageNotOss({
recvID: string,
groupID: string,
offlinePushInfo?: OfflinePush,
message: MessageItem,
}, operationID?: string): Promise<void>
Input Parameters
| Parameter Name | Parameter Type | Required | Description |
|---|---|---|---|
| message | MessageItem | Yes | Message body |
| recvID | string | Yes | Receiving message user ID, pass empty string when sending group message |
| groupID | string | Yes | Receiving message group ID, pass empty string when sending single chat message |
| offlinePushInfo | OfflinePushInfo | Yes | Offline push info |
| operationID | string | No | Operation ID, used to pinpoint issues, keep unique, prefer time+random |
Return Result
| Parameter Name | Parameter Type | Description |
|---|---|---|
| Promise.then() | Promise<void> | Success callback |
| Promise.catch() | Promise<OpenIMApiError> | Failure callback |
Code Example
import OpenIMSDK from "@openim/rn-client-sdk";
OpenIMSDK.sendMessageNotOss({
recvID: "userID",
groupID: "",
message: {
// MessageItem
...
},
offlinePushInfo: {
title: 'you have a new message',
desc: 'new message',
ex: '',
iOSPushSound: '+1',
iOSBadgeCount: true,
}
})
.then((data) => {
// Call successful
})
.catch((error) => {
// Call failed
});
Function Prototype
public static void SendMessageNotOss(IMsgSendCallBack cb, Message message, string recvId, string groupId, OfflinePushInfo offlinePushInfo,bool isOnlineOnly)
Input Parameters
| Parameter Name | Parameter Type | Required | Description |
|---|---|---|---|
| cb | IMsgSendCallBack | Yes | callback |
| message | Message | Yes | Message body |
| userId | string | No | Receiving message user ID |
| groupId | string | No | Receiving message group ID |
| offlinePushInfo | OfflinePushInfo | No | Offline push info |
| isOnlineOnly | bool | Yes | Receiver must be online to receive, otherwise it will be dropped |
Return Result
Code Example
var callback = new MsgSendCallBack(); // Implementation of IMsgSendCallBack interface
IMSDK.SendMessageNotOss(callback,msg ,recvId,groupId,new OfflinePushInfo(){},false);