Changing ToolBox design in an iOS native application by using JitsiMeetSDK

Hi @saghul,

I am trying to build an iOS application by using JitsiMeetSDK, but I intend to do some changes. I did go through the codebase and documentation, but was not able to find anything substantial on below queries. It would be great if I get could some direction around it.

Is there a way to change interface_configs from iOS JitsiMeetSDK to hide the ToolBox?

Is there a way to be able to execute commands in iOS JitsiMeetSDK like we do with JitsiMeet iframe API? For example: audioMute, videoMute


Hi there,

The answer to both, alas, is a no, at the moment.

Mobile doesn’t use interface_config at all.

As for the commands, we only have join and leave currently implemented.

Much thanks for the prompt reply @saghul !!
If I am able to put these changes in a PR, will you be able to take a look and merge?


Absolutely! @ me just in case I miss the PR.

1 Like

Hey @saghul,

I wanted to ask if you have any suggestions to how the interface configs and something like execCommand in web should be exposed to the native iOS SDK, I was hoping to try and put together a PR for this if I have correct direction?

I have tried to implement something like execCommand in web for executing ToolBox UI commands from outside of the SDK, here’s what I did -

  1. Make ExternalAPI.m an RCTEventEmitter and add methods like toggleAudio, toggleVideo, endCall.

  2. hook the subscribers in native middleware of external-api component on the RN side.

  3. And on the native side call the ExternalAPI.m methods from JitsiMeetView.m and expose these in JitsiMeetView.h. So that it gives parity with the join method exposed by the view.

That sounds like a good start!

Question: why do you want to make the module a RCTEventEmitter?

I’d suggest you start with just a couple of functions so we iron it out and then add some more.

1 Like

Thanks, @saghul, Wouldn’t we need to make ExternalAPI.m an RCTEventEmitter to be able to communicate from Native iOS side to RN side. For example, toogleAudio event which would come from client code calling a method on JitsiMeetView.m, is supposed to be passed to inside the RN code and call setAudiMuted.

True that, yes, it would be required.

1 Like