chat.createTextMessage(options);
options
为 Object
类型,包含的属性值如下:参数 | 类型 | 说明 |
to | String | 消息接收方的 userID 或 groupID |
conversationType | String | 会话类型,取值 TencentCloudChat.TYPES.CONV_C2C (端到端会话)或TencentCloudChat.TYPES.CONV_GROUP (群组会话) |
priority | String | 消息优先级,如果群组内消息超过频率限制,后端会优先投递高优先级消息。支持的枚举值: TencentCloudChat.TYPES.MSG_PRIORITY_HIGH TencentCloudChat.TYPES.MSG_PRIORITY_NORMAL (default) TencentCloudChat.TYPES.MSG_PRIORITY_LOW TencentCloudChat.TYPES.MSG_PRIORITY_LOWEST |
payload | Object | 消息内容的容器 |
cloudCustomData | String | 消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到) |
receiverList | Array | undefined | 定向接收消息的群成员列表(社群和直播群不支持) |
isSupportExtension | Boolean | 是否支持消息扩展,true 支持 false 不支持(需要您购买进阶版套餐) |
payload
的描述如下:参数 | 类型 | 说明 |
text | String | 消息文本内容 |
// 发送文本消息,Web 端与小程序端相同// 1. 创建消息实例,接口返回的实例可以上屏let message = chat.createTextMessage({to: 'user1',conversationType: TencentCloudChat.TYPES.CONV_C2C,// 消息优先级,用于群聊。如果某个群的消息超过了频率限制,后台会优先下发高优先级的消息// priority: TencentCloudChat.TYPES.MSG_PRIORITY_NORMAL,payload: {text: 'Hello world!'},// 如果您发消息需要已读回执,需购买旗舰版套餐,并且创建消息时将 needReadReceipt 设置为 trueneedReadReceipt: true// 消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到)// cloudCustomData: 'your cloud custom data'});// 2. 发送消息let promise = chat.sendMessage(message);promise.then(function(imResponse) {// 发送成功console.log(imResponse);}).catch(function(imError) {// 发送失败console.warn('sendMessage error:', imError);});
// 发送群定向消息// 注意:群定向消息不计入会话未读,receiverList 最大支持50个接收者。let message = chat.createTextMessage({to: 'group1',conversationType: TencentCloudChat.TYPES.CONV_GROUP,payload: {text: 'Hello world!'},// 如果您需要发群定向消息,需购买旗舰版套餐,并且创建消息时通过 receiverList 指定消息接收者receiverList: ['user0', 'user1']});// 发送消息let promise = chat.sendMessage(message);promise.then(function(imResponse) {// 发送成功console.log(imResponse);}).catch(function(imError) {// 发送失败console.warn('sendMessage error:', imError);});
chat.createTextAtMessage(options);
options
为 Object
类型,包含的属性值如下:参数 | 类型 | 说明 |
to | String | 消息接收方的 userID 或 groupID |
conversationType | String | 会话类型,取值 TencentCloudChat.TYPES.CONV_C2C (端到端会话)或TencentCloudChat.TYPES.CONV_GROUP (群组会话) |
priority | String | 消息优先级,如果群组内消息超过频率限制,后端会优先投递高优先级消息。支持的枚举值: TencentCloudChat.TYPES.MSG_PRIORITY_HIGH TencentCloudChat.TYPES.MSG_PRIORITY_NORMAL (default) TencentCloudChat.TYPES.MSG_PRIORITY_LOW TencentCloudChat.TYPES.MSG_PRIORITY_LOWEST |
payload | Object | 消息内容的容器 |
cloudCustomData | String | 消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到) |
payload
的描述如下:参数 | 类型 | 说明 |
text | String | 消息文本内容 |
atUserList | Array | 需要 @ 的用户列表,如果需要 @ALL,请传入 TencentCloudChat.TYPES.MSG_AT_ALL 。 举个例子,假设该条文本消息希望 @ 提醒 denny 和 lucy 两个用户,同时又希望 @ 所有人,atUserList 传 ['denny', 'lucy', TencentCloudChat.TYPES.MSG_AT_ALL] |
// 发送文本消息,Web 端与小程序端相同// 1. 创建消息实例,接口返回的实例可以上屏let message = chat.createTextAtMessage({to: 'group1',conversationType: TencentCloudChat.TYPES.CONV_GROUP,// 消息优先级,用于群聊// priority: TencentCloudChat.TYPES.MSG_PRIORITY_NORMAL,payload: {text: '@denny @lucy @所有人 今晚聚餐,收到的请回复1',// 'denny' 'lucy' 都是 userID,而非昵称atUserList: ['denny', 'lucy', TencentCloudChat.TYPES.MSG_AT_ALL]},// 消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到)// cloudCustomData: 'your cloud custom data'});// 2. 发送消息let promise = chat.sendMessage(message);promise.then(function(imResponse) {// 发送成功console.log(imResponse);}).catch(function(imError) {// 发送失败console.warn('sendMessage error:', imError);});
npm install react-native-image-picker --save
chat.createImageMessage(options);
options
为 Object
类型,包含的属性值如下表所示:参数 | 类型 | 说明 |
to | String | 消息的接收方 |
conversationType | String | 会话类型,取值 TencentCloudChat.TYPES.CONV_C2C 或 TencentCloudChat.TYPES.CONV_GROUP |
priority | String | 消息优先级,如果群组内消息超过频率限制,后端会优先投递高优先级消息。支持的枚举值: TencentCloudChat.TYPES.MSG_PRIORITY_HIGH TencentCloudChat.TYPES.MSG_PRIORITY_NORMAL (default) TencentCloudChat.TYPES.MSG_PRIORITY_LOW TencentCloudChat.TYPES.MSG_PRIORITY_LOWEST |
payload | Object | 消息内容的容器 |
onProgress | function | 获取上传进度的回调函数 |
cloudCustomData | String | 消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到) |
payload
的描述如下:参数 | 类型 | 说明 |
file | HTMLInputElement | Object | File | 用于选择图片的 DOM 节点(Web)或者 File 对象(Web) wx.chooseImage 接口的 success 回调参数。SDK 会读取其中的数据并上传图片 |
import {launchImageLibrary} from 'react-native-image-picker';// 1. 选择图片launchImageLibrary({mediaType: 'photo',selectionLimit: 1,}).then((result) => {const file = result.assets[0];// 2. 创建消息实例,接口返回的实例可以上屏let message = chat.createImageMessage({to: 'user1',conversationType: TencentCloudChat.TYPES.CONV_C2C,payload: { file: file },// React Native 不支持上传进度回调// onProgress: function(event) { console.log('file uploading:', event) }});// 3. 发送图片let promise = chat.sendMessage(message);promise.then(function(imResponse) {// 发送成功console.log(imResponse);}).catch(function(imError) {// 发送失败console.warn('sendMessage error:', imError);});});
import {launchCamera} from 'react-native-image-picker';// 1. 拍照launchCamera({mediaType: 'photo',cameraType: 'back',}).then((result) => {const file = result.assets[0];// 2. 创建消息实例,接口返回的实例可以上屏let message = chat.createImageMessage({to: 'user1',conversationType: TencentCloudChat.TYPES.CONV_C2C,payload: { file: file },// React Native 不支持上传进度回调// onProgress: function(event) { console.log('file uploading:', event) }});// 3. 发送图片let promise = chat.sendMessage(message);promise.then(function(imResponse) {// 发送成功console.log(imResponse);}).catch(function(imError) {// 发送失败console.warn('sendMessage error:', imError);});});
npm install react-native-audio-recorder-player --save
chat.createAudioMessage(options);
options
为 Object
类型,包含的属性值如下:参数 | 类型 | 说明 |
to | String | 消息的接收方 |
conversationType | String | 会话类型,取值 TencentCloudChat.TYPES.CONV_GROUP 或 TencentCloudChat.TYPES.CONV_GROUP |
priority | String | 消息优先级,如果群组内消息超过频率限制,后端会优先投递高优先级消息。支持的枚举值: TencentCloudChat.TYPES.MSG_PRIORITY_HIGH TencentCloudChat.TYPES.MSG_PRIORITY_NORMAL (default) TencentCloudChat.TYPES.MSG_PRIORITY_LOW TencentCloudChat.TYPES.MSG_PRIORITY_LOWEST |
payload | Object | 消息内容的容器 |
cloudCustomData | String | 消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到) |
payload
的描述如下:参数 | 类型 | 说明 |
file | Object | 录音后得到的文件信息 |
import AudioRecorderPlayer, {AVEncodingOption} from 'react-native-audio-recorder-player';// 记录录音时长,单位: mslet duration = 0;// 记录录音文件路径let uri = '';// 1. 开始录音const onStartRecord = async () => {await audioRecorderPlayer.startRecorder('test.aac',{VFormatIDKeyIOS: AVEncodingOption.aac,});audioRecorderPlayer.addRecordBackListener((e: any) => {duration = e.currentPosition;});};// 2. 结束录音const onStopRecord = async () => {uri = await audioRecorderPlayer.stopRecorder();audioRecorderPlayer.removeRecordBackListener();};// 3. 发送语音const file = {uri: uri,duration: duration,};let message = chat.createAudioMessage({to: 'user1',conversationType: 'C2C',payload: {file: file,},// React Native 不支持上传进度回调// onProgress: function(event) { console.log('file uploading:', event) }});let promise = chat.sendMessage(message);promise.then(function(imResponse) {// 发送成功console.log(imResponse);}).catch(function(imError) {// 发送失败console.warn('sendMessage error:', imError);});
npm install react-native-image-picker --save
chat.createVideoMessage(options);
options
为 Object
类型,包含的属性值如下:参数 | 类型 | 说明 |
to | String | 消息的接收方 |
conversationType | String | 会话类型,取值 TencentCloudChat.TYPES.CONV_GROUP 或 TencentCloudChat.TYPES.CONV_GROUP |
priority | String | 消息优先级,如果群组内消息超过频率限制,后端会优先投递高优先级消息。支持的枚举值: TencentCloudChat.TYPES.MSG_PRIORITY_HIGH TencentCloudChat.TYPES.MSG_PRIORITY_NORMAL (default) TencentCloudChat.TYPES.MSG_PRIORITY_LOW TencentCloudChat.TYPES.MSG_PRIORITY_LOWEST |
payload | Object | 消息内容的容器 |
cloudCustomData | String | 消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到) |
参数 | 类型 | 说明 |
file | HTMLInputElement | File | Object | 自定义消息的数据字段 |
import {launchImageLibrary} from 'react-native-image-picker';// 1. 选择视频launchImageLibrary({mediaType: 'video',selectionLimit: 1,}).then((result) => {const file = result.assets[0];// 2. 创建消息实例,接口返回的实例可以上屏let message = chat.createVideoMessage({to: 'user1',conversationType: TencentCloudChat.TYPES.CONV_C2C,payload: { file: file },// React Native 不支持上传进度回调// onProgress: function(event) { console.log('file uploading:', event) }});// 3. 发送视频let promise = chat.sendMessage(message);promise.then(function(imResponse) {// 发送成功console.log(imResponse);}).catch(function(imError) {// 发送失败console.warn('sendMessage error:', imError);});});
import {launchCamera} from 'react-native-image-picker';// 1. 拍摄视频launchCamera({mediaType: 'video',cameraType: 'back',}).then((result) => {const file = result.assets[0];// 2. 创建消息实例,接口返回的实例可以上屏let message = chat.createVideoMessage({to: 'user1',conversationType: TencentCloudChat.TYPES.CONV_C2C,payload: { file: file },// React Native 不支持上传进度回调// onProgress: function(event) { console.log('file uploading:', event) }});// 3. 发送视频let promise = chat.sendMessage(message);promise.then(function(imResponse) {// 发送成功console.log(imResponse);}).catch(function(imError) {// 发送失败console.warn('sendMessage error:', imError);});});
chat.createCustomMessage(options);
options
为 Object
类型,包含的属性值如下:参数 | 类型 | 说明 |
to | String | 消息接收方的 userID 或 groupID |
conversationType | String | 会话类型,取值 TencentCloudChat.TYPES.CONV_GROUP 或 TencentCloudChat.TYPES.CONV_GROUP |
priority | String | 消息优先级,如果群组内消息超过频率限制,后端会优先投递高优先级消息。支持的枚举值: TencentCloudChat.TYPES.MSG_PRIORITY_HIGH TencentCloudChat.TYPES.MSG_PRIORITY_NORMAL (default) TencentCloudChat.TYPES.MSG_PRIORITY_LOW TencentCloudChat.TYPES.MSG_PRIORITY_LOWEST |
payload | Object | 消息内容的容器 |
cloudCustomData | String | 消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到) |
payload
的描述如下:参数 | 类型 | 说明 |
data | String | 自定义消息的数据字段 |
description | String | 自定义消息的说明字段 |
extension | String | 自定义消息的扩展字段 |
// 示例:利用自定义消息实现投骰子功能// 1. 定义随机函数function random(min, max) {return Math.floor(Math.random() * (max - min + 1) + min);}// 2. 创建消息实例,接口返回的实例可以上屏let message = chat.createCustomMessage({to: 'user1',conversationType: TencentCloudChat.TYPES.CONV_C2C,// 消息优先级,用于群聊// priority: TencentCloudChat.TYPES.MSG_PRIORITY_HIGH,payload: {data: 'dice', // 用于标识该消息是骰子类型消息description: String(random(1,6)), // 获取骰子点数extension: ''}});// 3. 发送消息let promise = chat.sendMessage(message);promise.then(function(imResponse) {// 发送成功console.log(imResponse);}).catch(function(imError) {// 发送失败console.warn('sendMessage error:', imError);});
chat.createFaceMessage(options);
options
为 Object
类型,包含的属性值如下:参数 | 类型 | 说明 |
to | String | 消息接收方的 userID 或 groupID |
conversationType | String | 会话类型,取值 TencentCloudChat.TYPES.CONV_C2C 或 TencentCloudChat.TYPES.CONV_GROUP |
priority | String | 消息优先级,如果群组内消息超过频率限制,后端会优先投递高优先级消息。支持的枚举值: TencentCloudChat.TYPES.MSG_PRIORITY_HIGH TencentCloudChat.TYPES.MSG_PRIORITY_NORMAL (default) TencentCloudChat.TYPES.MSG_PRIORITY_LOW TencentCloudChat.TYPES.MSG_PRIORITY_LOWEST |
payload | Object | 消息内容的容器 |
cloudCustomData | String | 消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到) |
payload
的描述如下:参数 | 类型 | 说明 |
index | Number | 表情索引,用户自定义 |
data | String | 额外数据 |
// 发送表情消息,Web端与小程序端相同。// 1. 创建消息实例,接口返回的实例可以上屏let message = chat.createFaceMessage({to: 'user1',conversationType: TencentCloudChat.TYPES.CONV_C2C,// 消息优先级,用于群聊// priority: TencentCloudChat.TYPES.MSG_PRIORITY_NORMAL,payload: {index: 1, // Number 表情索引,用户自定义data: 'tt00' // String 额外数据},// 消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到)// cloudCustomData: 'your cloud custom data'});// 2. 发送消息let promise = chat.sendMessage(message);promise.then(function(imResponse) {// 发送成功console.log(imResponse);}).catch(function(imError) {// 发送失败console.warn('sendMessage error:', imError);});
npm install react-native-document-picker --save
chat.createFileMessage(options);
options
为 Object
类型,包含的属性值如下:参数 | 类型 | 说明 |
to | String | 消息接收方的 userID 或 groupID |
conversationType | String | 会话类型,取值 TencentCloudChat.TYPES.CONV_C2C 或 TencentCloudChat.TYPES.CONV_GROUP |
priority | String | 消息优先级,如果群组内消息超过频率限制,后端会优先投递高优先级消息。支持的枚举值: TencentCloudChat.TYPES.MSG_PRIORITY_HIGH TencentCloudChat.TYPES.MSG_PRIORITY_NORMAL (default) TencentCloudChat.TYPES.MSG_PRIORITY_LOW TencentCloudChat.TYPES.MSG_PRIORITY_LOWEST |
payload | Object | 消息内容的容器 |
onProgress | function | 获取上传进度的回调函数 |
cloudCustomData | String | 消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到) |
payload
的描述如下:参数 | 类型 | 说明 |
file | HTMLInputElement | File | Object | 用于选择文件的 DOM 节点(Web)或者 File 对象(Web)或者 Object(uni.chooseFile 接口的 success 回调参数),SDK 会读取其中的数据并上传文件 |
import DocumentPicker from 'react-native-document-picker';// 1. 选择文件DocumentPicker.pick({type: [DocumentPicker.types.allFiles],}).then((result) => {const file = result[0];// 2. 创建消息实例,接口返回的实例可以上屏let message = chat.createFileMessage({to: 'user1',conversationType: TencentCloudChat.TYPES.CONV_C2C,payload: { file: file },// React Native 不支持上传进度回调// onProgress: function(event) { console.log('file uploading:', event) }});// 3. 发送文件let promise = chat.sendMessage(message);promise.then(function(imResponse) {// 发送成功console.log(imResponse);}).catch(function(imError) {// 发送失败console.warn('sendMessage error:', imError);});});
chat.createLocationMessage(options);
options
为 Object
类型,包含的属性值如下:参数 | 类型 | 说明 |
to | String | 消息接收方的 userID 或 groupID |
conversationType | String | 会话类型,取值 TencentCloudChat.TYPES.CONV_C2C 或 TencentCloudChat.TYPES.TYPES.CONV_GROUP |
priority | String | 消息优先级,如果群组内消息超过频率限制,后端会优先投递高优先级消息。支持的枚举值: TencentCloudChat.TYPES.MSG_PRIORITY_HIGH TencentCloudChat.TYPES.MSG_PRIORITY_NORMAL (default) TencentCloudChat.TYPES.MSG_PRIORITY_LOW TencentCloudChat.TYPES.MSG_PRIORITY_LOWEST |
payload | Object | 消息内容的容器 |
cloudCustomData | String | 消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到) |
payload
的描述如下:参数 | 类型 | 说明 |
description | String | 地理位置描述信息 |
longitude | Number | 经度 |
latitude | Number | 纬度 |
// 发送地理位置消息,Web 端与小程序端相同// 1. 创建消息实例,接口返回的实例可以上屏let message = chat.createLocationMessage({to: 'user1',conversationType: TencentCloudChat.TYPES.CONV_C2C,// 消息优先级,用于群聊// priority: TencentCloudChat.TYPES.MSG_PRIORITY_NORMAL,payload: {description: '深圳市深南大道10000号腾讯大厦',longitude: 113.941079, // 经度latitude: 22.546103 // 纬度}});// 2. 发送消息let promise = chat.sendMessage(message);promise.then(function(imResponse) {// 发送成功console.log(imResponse);}).catch(function(imError) {// 发送失败console.warn('sendMessage error:', imError);});
chat.createMergerMessage(options);
options
为 Object
类型,包含的属性值如下:参数 | 类型 | 说明 |
to | String | 消息接收方的 userID 或 groupID |
conversationType | String | 会话类型,取值 TencentCloudChat.TYPES.CONV_C2C 或 TencentCloudChat.TYPES.CONV_GROUP |
priority | String | 消息优先级,如果群组内消息超过频率限制,后端会优先投递高优先级消息。支持的枚举值: TencentCloudChat.TYPES.MSG_PRIORITY_HIGH TencentCloudChat.TYPES.MSG_PRIORITY_NORMAL (default) TencentCloudChat.TYPES.MSG_PRIORITY_LOW TencentCloudChat.TYPES.MSG_PRIORITY_LOWEST |
payload | Object | 消息内容的容器 |
cloudCustomData | String | 消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到) |
payload
的描述如下:参数 | 类型 | 说明 |
messageList | Array | 合并的消息列表 |
title | String | 合并的标题,例如:"大湾区前端人才中心的聊天记录" |
abstractList | String | 摘要列表,不同的消息类型可以设置不同的摘要信息,例如:文本消息可以设置为:sender: text,图片消息可以设置为:sender: [图片],文件消息可以设置为:sender: [文件] |
compatibleText | String | 兼容文本,低版本 SDK 如果不支持合并消息,默认会收到一条文本消息,文本消息的内容为 ${compatibleText},必填 |
// 1. 将群聊消息转发到 c2c 会话// message1 message2 message3 是群聊消息let mergerMessage = chat.createMergerMessage({to: 'user1',conversationType: TencentCloudChat.TYPES.CONV_C2C,payload: {messageList: [message1, message2, message3],title: '大湾区前端人才中心的聊天记录',abstractList: ['allen: 666', 'iris: [图片]', 'linda: [文件]'],compatibleText: '请升级 Chat SDK 到v2.10.1或更高版本查看此消息'},// 消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到)// cloudCustomData: 'your cloud custom data'});// 2. 发送消息let promise = chat.sendMessage(mergerMessage);promise.then(function(imResponse) {// 发送成功console.log(imResponse);}).catch(function(imError) {// 发送失败console.warn('sendMessage error:', imError);});
chat.downloadMergerMessage(message);
参数 | 类型 | 说明 |
message | Message | 消息实例 |
Promise
// downloadKey 存在说明收到的合并消息存储在云端,需要先下载if (message.type === TencentCloudChat.TYPES.MSG_MERGER && message.payload.downloadKey !== '') {let promise = chat.downloadMergerMessage(message);promise.then(function(imResponse) {// 下载成功后,SDK会更新 message.payload.messageList 等信息console.log(imResponse.data);}).catch(function(imError) {// 下载失败console.warn('downloadMergerMessage error:', imError);});}
chat.createForwardMessage(message);
参数 | 类型 | 说明 |
message | Message | 消息实例 |
let forwardMessage = chat.createForwardMessage({to: 'user1',conversationType: TencentCloudChat.TYPES.CONV_C2C,// 消息优先级,用于群聊// priority:TencentCloudChat.
TYPES.MSG_PRIORITY_NORMAL,payload: message, // 消息实例,已收到的或自己已发出的消息// 消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到)// cloudCustomData: 'your cloud custom data'});// 2. 发送消息let promise = chat.sendMessage(forwardMessage);promise.then(function(imResponse) {// 发送成功console.log(imResponse);}).catch(function(imError) {// 发送失败console.warn('sendMessage error:', imError);});
TencentCloudChat.EVENT.SDK_READY
- sdk 处于 ready 状态时触发TencentCloudChat.EVENT.SDK_NOT_READY
- sdk 处于 not ready 状态时触发。chat.sendMessage(options);
options
为 Object
类型,包含的属性值如下:参数 | 类型 | 说明 |
message | Message | 消息实例 |
options | Object | 消息发送选项(消息内容的容器),选填 |
options
的描述如下:参数 | 类型 | 说明 |
onlineUserOnly | Boolean | 消息是否仅发送给在线用户的标识,默认值为 false;设置为 true,则消息既不存漫游,也不会计入未读,也不会离线推送给接收方。适合用于发送广播通知等不重要的提示消息场景。在 AVChatRoom 发送消息不支持此选项 |
offlinePushInfo | Object | |
messageControlInfo | Object | 消息控制配置 |
offlinePushInfo
的描述如下:参数 | 类型 | 说明 |
disablePush | Boolean | true 关闭离线推送;false 开启离线推送(默认) |
disableVoipPush | Boolean | true 关闭 voip 推送(默认);false 开启 voip 推送(开启 voip 推送需要同时开启离线推送) |
title | String | 离线推送标题,该字段为 iOS 和 Android 共用 |
description | String | 离线推送内容,该字段会覆盖消息实例的离线推送展示文本。若发送的是自定义消息,该 description 字段会覆盖 message.payload.description。如果 description 和 message.payload.description 字段都不填,接收方将收不到该自定义消息的离线推送 |
extension | String | 离线推送透传内容 |
androidInfo | Object | Android 推送配置 |
apnsInfo | Object | iOS 推送配置 |
androidInfo
的描述如下:参数 | 类型 | 说明 |
sound | String | Android 离线推送声音设置。只支持华为、小米和谷歌。 小米手机在 Android 8.0 及以上版本必须设置 androidInfo.XiaoMiChannelID,请您参考:小米自定义铃声。 谷歌手机 FCM 推送在 Android 8.0 及以上系统设置声音提示,必须设置 androidInfo.FCMChannelID。 自定义铃音需要设置声音文件路径。例如: androidInfo.sound = "shake.xxx" 对应 uniapp "nativeResources/android/res/raw/shake.xxx" 音频文件. 对应原生应用的 "/res/raw/shake.xxx" 音频文件。 |
XiaoMiChannelID | String | 小米手机 MIUI 10 及以上的通知类别(Channel)适配字段。 |
OPPOChannelID | String | OPPO 手机 Android 8.0 及以上的 NotificationChannel 通知适配字段。 |
FCMChannelID | String | Google 手机 Android 8.0 及以上的通知渠道字段。 |
VIVOClassification | Number | VIVO 手机推送消息分类,0:运营消息,1:系统消息,默认为1。 |
VIVOCategory | String | VIVO 手机用来标识消息类型。 |
HuaWeiCategory | String | 华为手机用来标识消息类型。 |
HuaWeiImage | String | 华为推送通知栏通知图片 url,v3.4.1 起支持。 使用的协议必须是 HTTPS 协议,取值样例:https://example.com/image.png 图片文件须小于 512KB,规格建议为 40dp x 40dp,弧角大小为 8dp。超出建议规格的图片会存在图片压缩或图片显示不全的情况。图片格式建议使用 JPG/JPEG/PNG。 |
HonorImage | String | 荣耀推送通知栏通知图片 url,v3.4.1 起支持。 使用的协议必须是 HTTPS 协议,取值样例:https://example.com/image.png 图标文件大小须小于 100KB,图标建议规格大小:160px x 160px,弧角大小为 32px,超出规格大小的图标会存在图片压缩或显示不全的情况。 |
GoogleImage | String | Google 推送通知栏通知图片 url,v3.4.1 起支持。 使用的协议必须是 HTTPS 协议,取值样例:https://example.com/image.png 图标文件大小须小于 1 MB,超出规格大小的图标会存在图片压缩或显示不全的情况。 |
apnsInfo
描述如下:参数 | 类型 | 说明 |
sound | String | iOS 离线推送声音设置。 当 apnsInfo.sound = TencentCloudChat.TYPES.IOS_OFFLINE_PUSH_NO_SOUND,表示接收时不会播放声音。 当 apnsInfo.sound = TencentCloudChat.TYPES.IOS_OFFLINE_PUSH_DEFAULT_SOUND,表示接收时播放系统声音。 自定义铃音需要设置声音文件路径。例如: apnsInfo.sound = "shake.xxx" 对应 uniapp "nativeResources/ios/Resources/shake.xxx" 文件,uniapp 必须为正式包。 对应原生 Xcode 工程中的 "shake.xxx" 音频文件。 |
ignoreIOSBadge | Boolean | 离线推送忽略 badge 计数(仅对 iOS 生效),默认为 false,设置为 true 时,在 iOS 接收端,这条消息不会使 APP 的应用图标未读计数增加。 |
disableVoipPush | Boolean | true 关闭 voip 推送(默认);false 开启 voip 推送(开启 voip 推送需要同时开启离线推送) |
image | String | 标识 APNs 通知栏通知图片地址,当客户端拿到该字段时,可以通过下载图片资源的方式将图片展示在弹窗上,v3.4.1 起支持。 使用的协议必须是 HTTPS 协议,取值样例:https://example.com/image.png 支持 JPEG、GIF、PNG,大小不超过 10 MB 需要在 IM 控制台打开 mutable-content 属性,支持 iOS 10 Service Extension 特性 资源的 key 值是 "image" |
messageControlInfo
的描述如下:参数 | 类型 | 说明 |
excludedFromUnreadCount | Boolean | true 消息不更新会话 unreadCount(消息存漫游),默认值 false |
excludedFromLastMessage | Boolean | true 消息不更新会话 lastMessage(消息存漫游),默认值 false |
excludedFromContentModeration | Boolean | 消息是否不过内容审核(云端审核) 只有在开通【云端审核】功能后,excludedFromContentModeration 设置才有效,设置为 true,消息不过内容审核,设置为 false 消息过内容审核。 |
Promise
// 如果接收方不在线,则消息将存入漫游,且进行离线推送(在接收方 App 退后台或者进程被 kill 的情况下)。// 离线推送的标题和内容使用默认值。// 离线推送的说明请参考 https://www.tencentcloud.com/document/product/1047/33525chat.sendMessage(message);
chat.sendMessage(message, {onlineUserOnly: true // 如果接收方不在线,则消息不存入漫游,且不会进行离线推送});
chat.sendMessage(message, {offlinePushInfo: {disablePush: true // 如果接收方不在线,则消息将存入漫游,但不进行离线推送}});
chat.sendMessage(message, {// 如果接收方不在线,则消息将存入漫游,且进行离线推送(在接收方 App 退后台或者进程被 kill 的情况下)。// 接入侧可自定义离线推送的标题及内容offlinePushInfo: {title: '', // 离线推送标题description: '', // 离线推送内容androidOPPOChannelID: '' // 离线推送设置 OPPO 手机 8.0 系统及以上的渠道 ID}});
chat.sendMessage(message, {messageControlInfo: {excludedFromUnreadCount: true, // 消息不更新会话 unreadCount(消息存漫游)excludedFromLastMessage: true // 消息不更新会话 lastMessage(消息存漫游)}});
// 消息不过内容审核chat.sendMessage(message, {messageControlInfo: {excludedFromContentModeration: true,}});
// 支持 VoIP pushchat.sendMessage(message, {offlinePushInfo: {disablePush: false,disableVoipPush: false}});
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.RECORD_AUDIO" />
<key>NSCameraUsageDescription</key><string>我们需要访问您的相机以拍摄照片</string><key>NSPhotoLibraryUsageDescription</key><string>我们需要访问您的相册以选择照片</string><key>NSMicrophoneUsageDescription</key><string>我们需要访问您的麦克风以录制音频</string>
功能特性 | 限制项 | 限制说明 |
单聊/群聊 | 内容长度 | 单聊、群聊消息,单条消息最大长度限制为 12K。 |
| 发送频率 | 单聊消息:客户端发送单聊消息无限制;REST API 发送有频率限制,可查看相应接口的文档。 群聊消息:每个群限 40 条/秒(针对所有群类型、所有平台接口)。不同群内发消息,限频互不影响。 |
| 接收频率 | 单聊和群聊均无限制。 |
| 单个文件大小 | 发送文件消息时,SDK 最大支持发送单个文件大小为 100MB。 |
本页内容是否解决了您的问题?