Send emoji reactions

The code on this page works with either the default UI or the custom UI.

The code on this page works with either the default UI or the custom UI.

Send and receive emoji reactions and feedback with the SDK through the ZoomSDKReactionController.

if let reactionCtrl = ZoomSDK.shared().getMeetingService()?.getReactionController() {
}
ZoomSDKReactionController *reactionCtrl = [[[ZoomSDK sharedSDK] getMeetingService] ZoomSDKReactionController *reactionCtrl = [[[ZoomSDK sharedSDK] getMeetingService] getReactionController];
if (reactionCtrl) {
}

To send reactions, first check that reactions are supported in the current meeting. Then, use sendEmojiReaction.

if reactionCtrl.isEmojiReactionEnabled() {
    reactionCtrl.send(ZoomSDKEmojiReactionType_Clap)
}
if (reactionCtrl.isEmojiReactionEnabled) {
    [reactionCtrl sendEmojiReaction: ZoomSDKEmojiReactionType_Clap];
}

Supported emojis and feedback

The ZoomSDKEmojiReactionType enum currently supports only these unicode emojis.

  • ZoomSDKEmojiReactionType_Clap
  • ZoomSDKEmojiReactionType_Thumbsup
  • ZoomSDKEmojiReactionType_Heart
  • ZoomSDKEmojiReactionType_Joy
  • ZoomSDKEmojiReactionType_Openmouth
  • ZoomSDKEmojiReactionType_Tada

Emoji feedback is also supported, but is done through a separate method.

reactionCtrl.send(ZoomSDKEmojiFeedbackType_Yes)
[reactionCtrl sendEmojiFeedback:ZoomSDKEmojiFeedbackType_Yes];

These feedback types are supported.

  • ZoomSDKEmojiFeedbackType_Yes
  • ZoomSDKEmojiFeedbackType_No
  • ZoomSDKEmojiFeedbackType_SpeedUp
  • ZoomSDKEmojiFeedbackType_SlowDown
  • ZoomSDKEmojiFeedbackType_Away

Get reaction and feedback updates

To get updates related to emoji reaction and feedback, implement the ZoomSDKReactionControllerDelegate protocol and set the delegate in ZoomSDKReactionController.

if let reactionCtrl = ZoomSDK.shared().getMeetingService()?.getReactionController() {
    reactionCtrl.delegate = self
}
extension ViewController: ZoomSDKReactionControllerDelegate {
    func onEmojiReactionReceived(_ userid: UInt32, reactionType type: ZoomSDKEmojiReactionType, reactionSkinTone skinTone: ZoomSDKEmojiReactionSkinTone) {
    }
    func onEmojiReactionReceived(inWebinar type: ZoomSDKEmojiReactionType) {
    }
    func onEmojiFeedbackReceived(_ userid: UInt32, emojiFeedbackType type: ZoomSDKEmojiFeedbackType) {
    }
    func onEmojiFeedbackCanceled(_ userid: UInt32) {
    }
}
// In your .h file
@interface ZMSDKTestWindow : NSWindowController <ZoomSDKReactionControllerDelegate> {
}
// In your .m file
ZoomSDKReactionController *reactionCtrl = [[[ZoomSDK sharedSDK] getMeetingService] getReactionController];
if (!reactionCtrl) {
    reactionCtrl.delegate = self;
    }
}
- (void) onEmojiReactionReceivedInWebinar:(ZoomSDKEmojiReactionType)type {
}
- (void) onEmojiReactionReceived:(unsigned int)userid reactionType:(ZoomSDKEmojiReactionType)type reactionSkinTone:(ZoomSDKEmojiReactionSkinTone)skinTone {
}
- (void) onEmojiFeedbackReceived:(unsigned int)userid emojiFeedbackType:(ZoomSDKEmojiFeedbackType)type {
}
- (void) onEmojiFeedbackCanceled:(unsigned int)userid {
}

These callbacks are triggered when any participant sends a reaction or feedback in a meeting with the user ID of the participant who sent or canceled the reaction or feedback. Additionally, there is a dedicated callback for when reactions are sent by webinar attendees anonymously.