融云发送图片消息_发送消息
發(fā)送消息
文本消息?
import { sendMessage, ConversationType, ObjectName } from "rongcloud-react-native-imlib";
const conversationType = ConversationType.PRIVATE;
const targetId = "userId"; // 根據(jù)會(huì)話類型的不同,可以是用戶 ID、討論組 ID、組群 ID 等
const content = { objectName: ObjectName.Text, content: "這是一個(gè)文本消息" };
const callback = {
success(messageId) {
console.log("發(fā)送成功:" + messageId);
},
error(errorCode) {
console.log("發(fā)送失敗:" + 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("發(fā)送成功:" + messageId);
},
progress(progress, messageId) {
console.log(`發(fā)送進(jìn)度: ${progress} %`);
// 消息發(fā)送過程中可隨時(shí)取消發(fā)送
cancelSendMediaMessage(messageId);
},
cancel() {
console.log("發(fā)送取消");
},
error(errorCode) {
console.log("發(fā)送失敗:" + 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 不提供語音錄制、轉(zhuǎn)碼功能,開發(fā)者需要自已實(shí)現(xiàn)語音消息錄制、轉(zhuǎn)碼,通過融云內(nèi)置的語音消息進(jìn)行發(fā)送。
import { sendMessage, ObjectName } from "rongcloud-react-native-imlib";
const content = {
objectName: ObjectName.Voice,
data: "audio raw data", // iOS 使用二進(jìn)制數(shù)據(jù)的方式發(fā)送
local: "audio path", // Android 使用文件方式發(fā)送
duration: 9 // 語音持續(xù)時(shí)間,單位:秒
};
sendMessage({ conversationType, targetId, content }, callback);
輸入狀態(tài)消息?
您可以在用戶正在輸入的時(shí)候,向?qū)Ψ桨l(fā)送正在輸入的狀態(tài)。目前該功能只支持單聊。
其中,您可以在 typingContentType 中傳入消息的類型名,會(huì)話中的其他用戶輸入狀態(tài)監(jiān)聽中會(huì)收到此消息類型。
您可以通過此消息類型,自定義不同的輸入狀態(tài)提示(如:正在輸入、正在講話、正在拍攝等)。
在 6 秒之內(nèi),如果同一個(gè)用戶在同一個(gè)會(huì)話中多次調(diào)用此接口發(fā)送正在輸入的狀態(tài),為保證產(chǎn)品體驗(yàn)和網(wǎng)絡(luò)優(yōu)化,將只有最開始的一次生效。
import { sendTypingStatus } from "rongcloud-react-native-imlib";
sendTypingStatus(conversationType, targetId, typingContentType);
在接收端,您可以設(shè)置輸入狀態(tài)的監(jiān)聽器。
當(dāng)前會(huì)話正在輸入的用戶有變化時(shí),會(huì)觸發(fā)監(jiān)聽中的 onTypingStatusChanged(),回調(diào)里攜帶有當(dāng)前正在輸入的用戶和消息類型。
對(duì)于單聊而言,當(dāng)對(duì)方正在輸入時(shí),監(jiān)聽會(huì)觸發(fā)一次;當(dāng)對(duì)方不處于輸入狀態(tài)時(shí),該監(jiān)聽還會(huì)觸發(fā)一次,但是回調(diào)里并不攜帶用戶和消息類型,開發(fā)者需要在此時(shí)取消正在輸入的顯示。
import { addTypingStatusListener } from "rongcloud-react-native-imlib";
addTypingStatusListener(({ conversationType, targetId, userId, typingContentType }) => {
if (userId) {
console.log("用戶輸入狀態(tài):" + typingContentType);
} else {
console.log("用戶不再輸入");
}
});
群組定向消息?
此方法用于在群組中給部分用戶發(fā)送消息,其它用戶不會(huì)收到這條消息,建議向群中部分用戶發(fā)送狀態(tài)類消息時(shí)使用此功能。
注:群定向消息不存儲(chǔ)到云端,通過“單群聊消息云存儲(chǔ)”服務(wù)無法獲取到定向消息。
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("發(fā)送成功:" + messageId);
},
error(errorCode) {
console.log("發(fā)送失敗:" + errorCode);
}
};
const userIds = ["user1", "user2"];
sendDirectionalMessage({ conversationType, targetId, content }, userIds, callback);
發(fā)送群 @消息?
群組中支持 @ 消息功能,滿足您 @ 指定用戶或 @ 所有人的需求,只需要在 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);
收到 @ 消息時(shí),在 Conversation 里的 hasUnreadMentioned 會(huì)被設(shè)為 true。
const conversation = await getConversation(conversationType, targetId);
console.log(conversation.hasUnreadMentioned);
您可以用 getUnreadMentionedMessages 獲取會(huì)話里所有未讀 @ 消息
import { getUnreadMentionedMessages } from "rongcloud-react-native-imlib";
const messages = await getUnreadMentionedMessages(conversationType, targetId);
總結(jié)
以上是生活随笔為你收集整理的融云发送图片消息_发送消息的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初三了,物理总是丢分,不知道什么原因。
- 下一篇: 华为外包1年_2021年(1月)有哪些高