Jitsi Meet Electron app

I want the jitsi meet electron application to be opened automatically when I enter https://meet.jit.si/, how can I do? Note: example: https://meet.jit.si/roomname I want to get automatic information with the room name and open it from the application.

The Jitsi Meet electron app registers itself as a protocol handler for jitsi-meet:// so it support deeplinks like jitsi-meet://myRoom. This means it is technically possible to launch it from a website.

Caveats:

  1. You will need custom script to attempt to load the deeplink URI, then somehow infer if the load was successful so you can show an alternative page to the user if it failed.
    • As far as I know, there is no foolproof way to know if the app was successfully loaded, but you could make a good attempt. See POC below.
  2. This custom script can’t run from https://meet.jit.si since you can’t inject arbitrary script into a specific room URL, but you could do it if you host your own Jitsi instance, or if your users visit a landing page first rather that go direct meet.jit.si

Proof of concept

Jitsi Meet Desktop App Redirect - POC (change the ?room=* for different rooms)

It attempts to launch the app, and assumes that the app successfully loaded if the window immediately loses focus (permission request pops up for opening app) or visibility (focus switches to electron app).

Of course, there are several scenarios where this will result in false positives or negatives, so it is important for the page to show links to load the web URL directly so users are not stuck on a dead-end page.

Users should see something like this if the Electron app is installed.

Or display alternative content if it guesses that the Electron app is not installed.

You are welcome to adapt the script as you see fit, but naturally I cannot offer any guarantees or support :slight_smile:

Good luck.

Update: Source now on github GitHub - shawnchin/jitsi-electron-loader

2 Likes

Hi, how to use this script? Where to put? Describe please

This is just a proof-of-concept to show that it is possible. You are free to incorporate into any site you have access to.

In the most basic of use cases, you could just host the files as is and use it as a landing page and provide a link to it to your users instead of the meet.jit.si link. So, instead of https://meet.jit.si/MyRoom you could send https://your.site/?room=MyRoom instead and visits will trigger the desktop app if installed.

But it should be easy enough to incorporate it in a richer app and implement your own handlers for load success/failures.

1 Like

Ok thank you this are good. But how to know where it is? If I put script like so https://mysite.com/script and I create link https://mysite/?room=MyRoom how the app are know where this script is?

Thank you! :slight_smile:

How to customize welcome to page in electron jitsi meet.

I’ve never tried, but I’m guessing you’ll need to fork the jitsi-meet-electron repo and build your own app.

This would be where I’d start looking if I were to customise to customise the welcome page:

Thank you. jitsi-meet: // room name
How jitsi sends the room name to Electron. I need to find out which object gets the room link. I would be glad if you help.

I’ve never really explored the source for the electron app before so take what I say with a generous pinch of salt.

After a quick poke around, my suggestion is to perhaps start here and work forwards/backwards:

setAsDefaultProtocolClient is used to register the app as the default handler for jitsi-meet:// protocol, but how the full URI (e.g. jitsi-meet://MyRoom) is passed to the app depends on several factors including the OS, how package was built, if there is already an open instance, etc.

The good thing is that in the case of jitsi-meet-electron, the handling of the different cases end up calling the same handleProtocolCall function with fires a ‘protocol-data-msg’ event which is handled by _listenOnProtocolMessages, hence my suggestion above to start there.

It’s OK. However I would like to use the inputURL in main.js which is in App.js. In my website User opens JitsiMeet Electron App with a URL that I provided and when the App is opened I wanna catch some parameters from URL in main.js. In clientside javascript I do it with `window.location.href. But I’m not so much familiar to electron.js. If you can help me I will be very appreciated.

@shawn It are look like you not define well doDownload function. If I are click link and it are go to page that are say make I downloade the app if I click button [Download the app] it are not do anything. It are not work. Can you fix?

@RyanP fixed

1 Like