tencent cloud

Feedback

JavaScript

Last updated: 2024-11-15 11:12:10

    Listen for signaling events.

    Note:
    Please call this interface to listen for events before calling the login interface to avoid missing events dispatched by the SDK.
    API
    chat.addSignalingListener(options);
    Parameters
    The options parameter is of the Object type, and contains the following attribute values:
    Name
    Type
    Description
    eventName
    String
    Event name. All event names are stored in the TencentCloudChat.TSignaling variable. If you need to view them, you can use console.log(TencentCloudChat.TSignaling) to display all the events.
    handler
    Function
    The method for handling events; when an event is triggered, this handler will be called for processing.
    context
    any
    The expected context in which the handler executes.
    Returned value
    Promise
    Sample
    let onNewInvitationReceived = function(event) {
    };
    chat.addSignalingListener(TencentCloudChat.TSignaling.NEW_INVITATION_RECEIVED, onNewInvitationReceived);

    Remove listening for signaling events.

    API
    chat.removeSignalingListener(options);
    Parameters
    The options parameter is of the Objecttype, and contains the following attribute values:
    Name
    Type
    Description
    eventName
    String
    Event name. All event names are stored in the TencentCloudChat.TSignaling variable. If you need to view them, you can use console.log(TencentCloudChat.TSignaling) to display all the events.
    handler
    Function
    The method for handling events; when an event is triggered, this handler will be called for processing.
    context
    any
    The expected context in which the handler executes.
    Returned value
    Promise
    Sample
    let onNewInvitationReceived = function(event) {
    };
    chat.removeSignalingListener(TencentCloudChat.TSignaling.NEW_INVITATION_RECEIVED, onNewInvitationReceived);

    Invite someone

    API
    chat.invite(options);
    Parameters
    The options parameter is of the Objecttype, and contains the following attribute values:
    Name
    Type
    Description
    userID
    String
    user ID
    data
    String
    custom data
    timeout
    Number
    Timeout period, in seconds. If set to 0, the SDK will not perform timeout detection and will not trigger the onInvitationTimeout callback.
    onlineUserOnly
    Boolean
    A flag indicating whether the message is only sent to online users; the default value is false. If set to true, the message will neither be roaming nor counted as unread, nor will it be pushed offline to the recipient. Additionally, the invite operation will not generate a historical message (subsequent cancel, accept, reject, timeout operations for that invite will also not generate historical messages).
    offlinePushInfo
    Object
    Offline push configuration.
    The offlinePushInfo is as described below:
    Name
    Type
    Description
    disablePush
    Boolean
    true: offline push is disabled; false (default): offline push is enabled.
    disableVoipPush
    Boolean
    true to disable VoIP push (default); false to enable VoIP push (enabling VoIP push requires enabling offline push simultaneously)
    title
    String
    Offline push title. This parameter is used by both iOS and Android.
    description
    String
    Offline push content. This parameter will overwrite the offline push display text of the message instance. If the sent message is a custom message, this parameter will overwrite message.payload.description. If both description and message.payload.description are left empty, the receiver cannot receive the offline push notification of the custom message.
    extension
    String
    Content passed through by offline push.
    androidInfo
    Object
    Android Push Configuration.
    apnsInfo
    Object
    iOS Push Configuration.
    The androidInfo is as described below:
    Name
    Type
    Description
    sound
    String
    Android offline push sound settings. Only supports Huawei, Xiaomi, and Google.
    
    For Xiaomi phones running Android 8.0 and above, you must set androidInfo.XiaoMiChannelID.
    
    For Google phones with FCM push on Android 8.0 and above systems to set sound prompts, you must set androidInfo.FCMChannelID.
    
    Custom ringtones require setting the path to the sound file. For example: androidInfo.sound = "shake.xxx"
    Corresponding to the uniapp "nativeResources/android/res/raw/shake.xxx" audio file.
    Corresponding to the native app's "/res/raw/shake.xxx" audio file.
    XiaoMiChannelID
    String
    Notification category (Channel) adaptation field for Xiaomi phones with MIUI 10 and above.
    OPPOChannelID
    String
    NotificationChannel adaptation field for OPPO phones running Android 8.0 and above.
    FCMChannelID
    String
    Notification channel field for Google phones running Android 8.0 and above.
    VIVOClassification
    Number
    VIVO phone push message classification, 0: operational message, 1: system message, default is 1.
    VIVOCategory
    String
    Used to identify the message type on VIVO phones.
    HuaWeiCategory
    String
    Used to identify the message type on Huawei phones.
    HuaWeiImage
    String
    Huawei push notification bar notification image URL.
    The protocol used must be HTTPS, an example value: https://example.com/image.png.
    The image file must be less than 512KB, with a recommended size of 40dp x 40dp and rounded corners of 8dp. Images exceeding the recommended specifications may experience compression or incomplete display. The recommended image formats are JPG/JPEG/PNG.
    HonorImage
    String
    Honor push notification bar notification image URL.
    The protocol used must be HTTPS, an example value: https://example.com/image.png.
    The icon file size must be less than 100KB, with a recommended specification size of 160px x 160px and rounded corners of 32px. Icons exceeding the recommended specifications may experience compression or incomplete display.
    GoogleImage
    String
    Google push notification bar notification image URL.
    The protocol used must be HTTPS, an example value: https://example.com/image.png.
    The icon file size must be less than 1 MB, icons exceeding the specification size may experience compression or incomplete display.
    The apnsInfo is as described below:
    Name
    Type
    Description
    sound
    String
    iOS offline push sound settings.
    
    When apnsInfo.sound = TencentCloudChat.TYPES.IOS_OFFLINE_PUSH_NO_SOUND, it means that no sound will be played upon receipt.
    
    When apnsInfo.sound = TencentCloudChat.TYPES.IOS_OFFLINE_PUSH_DEFAULT_SOUND, it means that the system sound will be played upon receipt.
    
    Custom ringtones require setting the path to the sound file. For example: apnsInfo.sound = "shake.xxx"
    Corresponding to the uniapp "nativeResources/ios/Resources/shake.xxx" file, the uniapp must be a formal package.
    Corresponding to the "shake.xxx" audio file in the native Xcode project.
    ignoreIOSBadge
    Boolean
    Ignore badge count for offline push (only effective for iOS), default is false. When set to true, on the iOS receiving end, this message will not increase the unread count on the APP's application icon.
    disableVoipPush
    Boolean
    true to disable VoIP push (default); false to enable VoIP push (enabling VoIP push requires enabling offline push simultaneously)
    image
    String
    Identifies the APNs notification bar notification image address. When the client obtains this field, it can display the image on the pop-up window by downloading the image resource.
    The protocol used must be HTTPS, an example value: https://example.com/image.png
    Supports JPEG, GIF, PNG, with a size not exceeding 10 MB.
    The mutable-content attribute needs to be enabled in the IM console to support iOS 10 Service Extension features.
    The resource's key value is "image".
    Returned value
    Promise
    Sample
    // invite someone let promise = chat.invite({ userID: 'user1', data: '' }); promise.then(function(imResponse) { console.warn('invite success:', imResponse) }).catch(function(imError) { console.warn('invite error:', imError); });
    // Invite someone, with the setting not to update the conversation's unreadCount and lastMessage.
    let promise = chat.invite({
    userID: 'user1',
    data: JSON.stringify({ excludeFromHistoryMessage: true }),
    });
    promise.then(function(imResponse) {
    console.warn('invite success:', imResponse)
    }).catch(function(imError) {
    console.warn('invite error:', imError);
    });
    // Invite someone, and set a 30-second timeout. If there is no operation within 30 seconds
    // the inviter will receive the TencentCloudChat.TSignaling.INVITATION_TIMEOUT event. let promise = chat.invite({ userID: 'user1', data: '', timeout: 30 }); promise.then(function(imResponse) { console.warn('invite success:', imResponse) }).catch(function(imError) { console.warn('invite error:', imError); });
    // Invite someone, set a 30-second timeout, and the related signaling will not be stored in roaming
    // nor will it be pushed offline. let promise = chat.invite({ userID: 'user1', data: '', timeout: 30, onlineUserOnly: true }); promise.then(function(imResponse) { console.warn('invite success:', imResponse) }).catch(function(imError) { console.warn('invite error:', imError); });

    Invite certain people within a group.

    API
    chat.inviteInGroup(options);
    Parameters
    The options parameter is of the Objecttype, and contains the following attribute values:
    Name
    Type
    Description
    groupID
    String
    a group ID
    inviteeList
    Array.<String>
    List of invitees
    data
    String
    custom data
    timeout
    Number
    Timeout period, in seconds. If set to 0, the SDK will not perform timeout detection and will not trigger the onInvitationTimeout callback.
    onlineUserOnly
    Boolean
    A flag indicating whether the message is only sent to online users; the default value is false. If set to true, the message will neither be roaming nor counted as unread, nor will it be pushed offline to the recipient. Additionally, the invite operation will not generate a historical message (subsequent cancel, accept, reject, timeout operations for that invite will also not generate historical messages).
    offlinePushInfo
    Object
    Offline push configuration.
    Returned value
    Promise
    Sample
    // Invite certain people within a group.
    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);
    });

    The inviter cancels the invitation.

    API
    chat.cancel(options);
    Parameters
    The options parameter is of the Objecttype, and contains the following attribute values:
    Name
    Type
    Description
    inviteID
    String
    ID of the invitation
    data
    String
    custom data
    Returned value
    Promise
    Sample
    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); });

    The invitee accepts the invitation.

    API
    chat.accept(options);
    Parameters
    The options parameter is of the Objecttype, and contains the following attribute values:
    Name
    Type
    Description
    inviteID
    String
    ID of the invitation
    data
    String
    custom data
    Returned value
    Promise
    Sample
    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);
    });

    The invitee rejects the invitation.

    API
    chat.reject(options);
    Parameters
    The options parameter is of the Objecttype, and contains the following attribute values:
    Name
    Type
    Description
    inviteID
    String
    ID of the invitation
    data
    String
    custom data
    Returned value
    Promise
    Sample
    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);
    });

    Get signaling information.

    API
    chat.getSignalingInfo(message);
    Parameters
    Name
    Type
    Description
    message
    Message
    a message instance
    Returned value
    Message | Null
    Sample
    // When signaling is null, it indicates that the message is a regular message, not a signaling message.
    let signaling = chat.getSignalingInfo(message);
    console.log('signaling info', signaling);

    Modify the invitation signaling.

    Note:
    Support for modifying data of the invitation signaling. When the invitation signaling's onlineUserOnly = true, modifications are not supported.
    API
    chat.modifyInvitation(options);
    Parameters
    The options parameter is of the Objecttype, and contains the following attribute values:
    Name
    Type
    Description
    inviteID
    String
    ID of the invitation
    data
    String
    custom data
    Returned value
    Promise
    Sample
    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);
    });
    
    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support