tencent cloud

文档反馈

React Native

最后更新时间:2024-11-20 16:19:58

    监听信令事件

    说明:
    请在调用 login 接口前调用此接口监听事件,避免漏掉 SDK 派发的事件。
    接口
    chat.addSignalingListener(options);
    参数
    参数 optionsObject 类型,包含的属性值如下:
    名称
    类型
    描述
    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);
    参数
    参数 optionsObject 类型,包含的属性值如下:
    名称
    类型
    描述
    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);
    参数
    参数 optionsObject 类型,包含的属性值如下:
    名称
    类型
    描述
    userID
    String
    邀请的用户 ID
    data
    String
    自定义数据
    timeout
    Number
    超时时间,单位秒,如果设置为 0,SDK 不会做超时检测,也不会触发 onInvitationTimeout 回调
    onlineUserOnly
    Boolean
    消息是否仅发送给在线用户的标识,默认值为 false;设置为 true,则消息既不存漫游,也不会计入未读,也不会离线推送给接收方, 并且 invite 操作也不会产生历史消息(针对该次invite 的后续 cancelacceptrejecttimeout操作也同样不会产生历史消息)。
    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 和 lastMessage
    let promise = chat.invite({
    userID: 'user1',
    // excludeFromHistoryMessage: true,表示此信令消息不更新会话 unreadCount 和 lastMessage
    data: 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);
    参数
    参数 optionsObject 类型,包含的属性值如下:
    名称
    类型
    描述
    groupID
    String
    群组 ID
    inviteeList
    Array.<String>
    被邀请人列表
    data
    String
    自定义数据
    timeout
    Number
    超时时间,单位秒,如果设置为 0,SDK 不会做超时检测,也不会触发 onInvitationTimeout 回调
    onlineUserOnly
    Boolean
    消息是否仅发送给在线用户的标识,默认值为 false;设置为 true,则消息既不存漫游,也不会计入未读,也不会离线推送给接收方, 并且 invite 操作也不会产生历史消息(针对该次invite 的后续 cancelacceptrejecttimeout操作也同样不会产生历史消息)。
    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);
    参数
    参数 optionsObject 类型,包含的属性值如下:
    名称
    类型
    描述
    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);
    参数
    参数 optionsObject 类型,包含的属性值如下:
    名称
    类型
    描述
    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);
    参数
    参数 optionsObject 类型,包含的属性值如下:
    名称
    类型
    描述
    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);
    参数
    参数 optionsObject 类型,包含的属性值如下:
    名称
    类型
    描述
    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); // 修改邀请信令失败
    });
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持