chat.addSignalingListener(options);
options
为 Object
类型,包含的属性值如下:名称 | 类型 | 描述 |
eventName | String | 事件名称。所有的事件名称都存放在 TencentCloudChat.TSignaling 变量中,如需要查看可以使用 console.log(TencentCloudChat.TSignaling) 把所有的事件显示出来。 |
handler | Function | 处理事件的方法,当事件触发时,会调用此handler进行处理。 |
context | any | 期望 handler 执行时的上下文 |
Promise
let onNewInvitationReceived = function(event) {};chat.addSignalingListener(TencentCloudChat.TSignaling.NEW_INVITATION_RECEIVED, onNewInvitationReceived);
chat.removeSignalingListener(options);
options
为 Object
类型,包含的属性值如下:名称 | 类型 | 描述 |
eventName | String | 事件名称。所有的事件名称都存放在 TencentCloudChat.TSignaling 变量中,如需要查看可以使用 console.log(TencentCloudChat.TSignaling) 把所有的事件显示出来。 |
handler | Function | 处理事件的方法,当事件触发时,会调用此handler进行处理。 |
context | any | 期望 handler 执行时的上下文 |
Promise
let onNewInvitationReceived = function(event) {};chat.removeSignalingListener(TencentCloudChat.TSignaling.NEW_INVITATION_RECEIVED, onNewInvitationReceived);
chat.invite(options);
options
为 Object
类型,包含的属性值如下:名称 | 类型 | 描述 |
userID | String | 邀请的用户 ID |
data | String | 自定义数据 |
timeout | Number | 超时时间,单位秒,如果设置为 0,SDK 不会做超时检测,也不会触发 onInvitationTimeout 回调 |
onlineUserOnly | Boolean | 消息是否仅发送给在线用户的标识,默认值为 false ;设置为 true ,则消息既不存漫游,也不会计入未读,也不会离线推送给接收方, 并且 invite 操作也不会产生历史消息(针对该次invite 的后续 cancel 、accept 、reject 、timeout 操作也同样不会产生历史消息)。 |
offlinePushInfo | 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" |
Promise
// 邀请某个人let promise = chat.invite({userID: 'user1',data: ''});promise.then(function(imResponse) { // 发送邀请信令成功console.warn('invite success:', imResponse)}).catch(function(imError) {console.warn('invite error:', imError);});
// 邀请某个人, 设置不更新会话 unreadCount 和 lastMessagelet promise = chat.invite({userID: 'user1',// excludeFromHistoryMessage: true,表示此信令消息不更新会话 unreadCount 和 lastMessagedata: JSON.stringify({ excludeFromHistoryMessage: true }),});promise.then(function(imResponse) { // 发送邀请信令成功console.warn('invite success:', imResponse)}).catch(function(imError) {console.warn('invite error:', imError);});
// 邀请某个人, 并设置 30s 超时, 30s 内没有任何操作,邀请方会收到 TencentCloudChat.TSignaling.INVITATION_TIMEOUT 事件。let promise = chat.invite({userID: 'user1',data: '',timeout: 30 // 设置 30s 超时});promise.then(function(imResponse) { // 发送邀请信令成功console.warn('invite success:', imResponse)}).catch(function(imError) {console.warn('invite error:', imError);});
// 邀请某个人, 设置 30s 超时, 相关信令不存入漫游, 且不会进行离线推送let promise = chat.invite({userID: 'user1',data: '',timeout: 30, // 设置 30s 超时onlineUserOnly: true // 设置相关信令不存入漫游, 且不会进行离线推送});promise.then(function(imResponse) { // 发送邀请信令成功console.warn('invite success:', imResponse)}).catch(function(imError) {console.warn('invite error:', imError);});
chat.inviteInGroup(options);
options
为 Object
类型,包含的属性值如下:名称 | 类型 | 描述 |
groupID | String | 群组 ID |
inviteeList | Array.<String> | 被邀请人列表 |
data | String | 自定义数据 |
timeout | Number | 超时时间,单位秒,如果设置为 0,SDK 不会做超时检测,也不会触发 onInvitationTimeout 回调 |
onlineUserOnly | Boolean | 消息是否仅发送给在线用户的标识,默认值为 false ;设置为 true ,则消息既不存漫游,也不会计入未读,也不会离线推送给接收方, 并且 invite 操作也不会产生历史消息(针对该次invite 的后续 cancel 、accept 、reject 、timeout 操作也同样不会产生历史消息)。 |
offlinePushInfo | Object | 离线推送配置 |
Promise
// 邀请群内的某些人let promise = chat.inviteInGroup({groupID: 'AV1',inviteeList: ['user1', 'user2'],data: '',});promise.then(function(imResponse) { // 发送邀请信令成功console.warn('inviteInGroup success:', imResponse)}).catch(function(imError) {console.warn('inviteInGroup error:', imError);});
chat.cancel(options);
options
为 Object
类型,包含的属性值如下:名称 | 类型 | 描述 |
inviteID | String | 邀请信息的 ID |
data | String | 自定义数据 |
Promise
// 邀请发起者取消邀请let promise = chat.cancel({inviteID: '38897dbf-ecd4-4b59-a132-bc31529a2b18',data: '',})promise.then(function(imResponse) { // 取消邀请成功console.log('cancel OK', imResponse);}).catch(function(error) {console.warn('cancel failed:', error); // 取消邀请失败});
chat.accept(options);
options
为 Object
类型,包含的属性值如下:名称 | 类型 | 描述 |
inviteID | String | 邀请信息的 ID |
data | String | 自定义数据 |
Promise
// 被邀请人接受邀请let promise = chat.accept({inviteID: '38897dbf-ecd4-4b59-a132-bc31529a2b18',data: '',})promise.then(function(imResponse) { // 被邀请人接受邀请成功console.log('accept OK', imResponse);}).catch(function(error) {console.warn('accept failed:', error); // 被邀请人接受邀请失败});
chat.reject(options);
options
为 Object
类型,包含的属性值如下:名称 | 类型 | 描述 |
inviteID | String | 邀请信息的 ID |
data | String | 自定义数据 |
Promise
// 被邀请人拒绝邀请let promise = chat.reject({inviteID: '38897dbf-ecd4-4b59-a132-bc31529a2b18',data: '',})promise.then(function(imResponse) { // 被邀请人拒绝邀请成功console.log('reject OK', imResponse);}).catch(function(error) {console.warn('reject failed:', error); // 被邀请人拒绝邀请失败});
chat.getSignalingInfo(message);
名称 | 类型 | 描述 |
message | Message | 消息对象 |
Message | Null
// 获取信令信息let signaling = chat.getSignalingInfo(message);console.log('signaling info', signaling); // signaling 为 null 时,表示该条消息为普通消息,不是信令消息
data
。当邀请信令的 onlineUserOnly = true
时,不支持修改。chat.modifyInvitation(options);
options
为 Object
类型,包含的属性值如下:名称 | 类型 | 描述 |
inviteID | String | 邀请信息的 ID |
data | String | 自定义数据 |
Promise
// 修改邀请信令let promise = chat.modifyInvitation({inviteID:'38897dbf-ecd4-4b59-a132-bc31529a2b18',data: 'xxxx'});promise.then(function(imResponse) { // 修改发送邀请信令成功console.log('modifyInvitation OK', imResponse);}).catch(function(error) {console.warn('modifyInvitation failed:', error); // 修改邀请信令失败});
本页内容是否解决了您的问题?