融云发送图片消息_发送消息
發送消息
文本消息?
import { sendMessage, ConversationType, ObjectName } from "rongcloud-react-native-imlib";
const conversationType = ConversationType.PRIVATE;
const targetId = "userId"; // 根據會話類型的不同,可以是用戶 ID、討論組 ID、組群 ID 等
const content = { objectName: ObjectName.Text, content: "這是一個文本消息" };
const callback = {
success(messageId) {
console.log("發送成功:" + messageId);
},
error(errorCode) {
console.log("發送失敗:" + errorCode);
}
};
sendMessage({ conversationType, targetId, content }, callback);
圖片消息?
import { sendMediaMessage, cancelSendMediaMessage, ObjectName } from "rongcloud-react-native-imlib";
const content = { objectName: ObjectName.Image, local: "file:///image_path" };
const callback = {
success(messageId) {
console.log("發送成功:" + messageId);
},
progress(progress, messageId) {
console.log(`發送進度: ${progress} %`);
// 消息發送過程中可隨時取消發送
cancelSendMediaMessage(messageId);
},
cancel() {
console.log("發送取消");
},
error(errorCode) {
console.log("發送失敗:" + errorCode);
}
};
sendMediaMessage({ conversationType, targetId, content }, callback);
文件消息?
import { sendMediaMessage, ObjectName } from "rongcloud-react-native-imlib";
const content = { objectName: ObjectName.File, local: "file:///image_path" };
sendMediaMessage({ conversationType, targetId, content }, callback);
位置消息?
import { sendMessage, ObjectName } from "rongcloud-react-native-imlib";
const content = {
objectName: ObjectName.Location,
latitude: 34,
longitude: 108,
name: "海龍大廈",
thumbnail: "http://example.com/thum.jpg"
};
sendMessage({ conversationType, targetId, content }, callback);
語音消息?
融云 React Native SDK 不提供語音錄制、轉碼功能,開發者需要自已實現語音消息錄制、轉碼,通過融云內置的語音消息進行發送。
import { sendMessage, ObjectName } from "rongcloud-react-native-imlib";
const content = {
objectName: ObjectName.Voice,
data: "audio raw data", // iOS 使用二進制數據的方式發送
local: "audio path", // Android 使用文件方式發送
duration: 9 // 語音持續時間,單位:秒
};
sendMessage({ conversationType, targetId, content }, callback);
輸入狀態消息?
您可以在用戶正在輸入的時候,向對方發送正在輸入的狀態。目前該功能只支持單聊。
其中,您可以在 typingContentType 中傳入消息的類型名,會話中的其他用戶輸入狀態監聽中會收到此消息類型。
您可以通過此消息類型,自定義不同的輸入狀態提示(如:正在輸入、正在講話、正在拍攝等)。
在 6 秒之內,如果同一個用戶在同一個會話中多次調用此接口發送正在輸入的狀態,為保證產品體驗和網絡優化,將只有最開始的一次生效。
import { sendTypingStatus } from "rongcloud-react-native-imlib";
sendTypingStatus(conversationType, targetId, typingContentType);
在接收端,您可以設置輸入狀態的監聽器。
當前會話正在輸入的用戶有變化時,會觸發監聽中的 onTypingStatusChanged(),回調里攜帶有當前正在輸入的用戶和消息類型。
對于單聊而言,當對方正在輸入時,監聽會觸發一次;當對方不處于輸入狀態時,該監聽還會觸發一次,但是回調里并不攜帶用戶和消息類型,開發者需要在此時取消正在輸入的顯示。
import { addTypingStatusListener } from "rongcloud-react-native-imlib";
addTypingStatusListener(({ conversationType, targetId, userId, typingContentType }) => {
if (userId) {
console.log("用戶輸入狀態:" + typingContentType);
} else {
console.log("用戶不再輸入");
}
});
群組定向消息?
此方法用于在群組中給部分用戶發送消息,其它用戶不會收到這條消息,建議向群中部分用戶發送狀態類消息時使用此功能。
注:群定向消息不存儲到云端,通過“單群聊消息云存儲”服務無法獲取到定向消息。
import { sendDirectionalMessage, ObjectName } from "rongcloud-react-native-imlib";
const conversationType = ConversationType.PRIVATE;
const targetId = "groupId"; // 只能是組群 ID
const content = { objectName: ObjectName.Text, content: "Hello" };
const callback = {
success(messageId) {
console.log("發送成功:" + messageId);
},
error(errorCode) {
console.log("發送失敗:" + errorCode);
}
};
const userIds = ["user1", "user2"];
sendDirectionalMessage({ conversationType, targetId, content }, userIds, callback);
發送群 @消息?
群組中支持 @ 消息功能,滿足您 @ 指定用戶或 @ 所有人的需求,只需要在 MessageContent 中添加 mentionedInfo 字段。
import { sendMessage, MentionedType, ObjectName } from "rongcloud-react-native-imlib";
const content = {
objectName: ObjectName,
content: "Hello",
mentionedInfo: {
type: MentionedType.PART, // @ 指定的用戶
userIdList: ["userId"]
}
};
sendMessage({ conversationType, targetId, content }, callback);
收到 @ 消息時,在 Conversation 里的 hasUnreadMentioned 會被設為 true。
const conversation = await getConversation(conversationType, targetId);
console.log(conversation.hasUnreadMentioned);
您可以用 getUnreadMentionedMessages 獲取會話里所有未讀 @ 消息
import { getUnreadMentionedMessages } from "rongcloud-react-native-imlib";
const messages = await getUnreadMentionedMessages(conversationType, targetId);
總結
以上是生活随笔為你收集整理的融云发送图片消息_发送消息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初三了,物理总是丢分,不知道什么原因。
- 下一篇: 华为外包1年_2021年(1月)有哪些高