From b2c88f7e6283b5f9c9f7adad55bf4e93410687ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Tollk=C3=BChn?= Date: Wed, 7 Oct 2026 14:26:56 +0200 Subject: [PATCH] use intent url for deeplinking on android --- launch.html | 48 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/launch.html b/launch.html index 7408a80..1859f60 100644 --- a/launch.html +++ b/launch.html @@ -1639,6 +1639,50 @@ ); } + /* ============================================================ + * JITSI ANDROID URL + * ============================================================ */ + + /* + * Die Android-App registriert "org.jitsi.meet", nicht das + * Desktop-Schema. Chrome & Co. verlangen intent://, ohne App + * bietet Chrome den Play-Store-Eintrag aus "package=" an. + * Firefox ignoriert intent://, kennt aber das Custom-Schema. + */ + + function createAndroidIntentUrl(room) { + return ( + "intent://" + + CONFIG.jitsiHost + + "/" + + encodeURIComponent(room) + + "#Intent;scheme=org.jitsi.meet;package=org.jitsi.meet;end" + ); + } + + function createAndroidAppUrl(room) { + return ( + "org.jitsi.meet://" + + CONFIG.jitsiHost + + "/" + + encodeURIComponent(room) + ); + } + + /* ============================================================ + * URL NACH PLATTFORM/BROWSER + * ============================================================ */ + + function selectProtocolUrl(room) { + if (detectOperatingSystem() !== "android") { + return createAppUrl(room); + } + + return detectBrowser() === "firefox" + ? createAndroidAppUrl(room) + : createAndroidIntentUrl(room); + } + /* ============================================================ * DETECT OPERATING SYSTEM * ============================================================ @@ -1772,7 +1816,7 @@ return; } - const protocolUrl = createAppUrl(room); + const protocolUrl = selectProtocolUrl(room); const browserUrl = createBrowserUrl(room); /* @@ -2288,7 +2332,7 @@ END:VCALENDAR`; room: room, operatingSystem: detectOperatingSystem(), browser: detectBrowser(), - protocol: createAppUrl(room), + protocol: selectProtocolUrl(room), browserUrl: createBrowserUrl(room) } );