Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

disableDeepLinking : true has stopped working #12724

Closed
eonbhuwan opened this issue Dec 24, 2022 · 12 comments
Closed

disableDeepLinking : true has stopped working #12724

eonbhuwan opened this issue Dec 24, 2022 · 12 comments

Comments

@eonbhuwan
Copy link

Download Jitsi App or Launch in Web option is still appearing on mobile browsers. It was working few days back.

@saghul
Copy link
Member

saghul commented Dec 24, 2022

@horymury

@imedia3
Copy link

imedia3 commented Dec 26, 2022

Is this the same as my case with the latest release? I'm trying to allow mobile browsers without Mobile app promo (previously it worked).

If I use disableDeepLinking : true (or false) together with MOBILE_APP_PROMO: false, - user can't join any room with mobile browser - with error "Video chat isn't available on mobile. Please use jitsi meet on desktop to join calls." (both on Android/iOS)

After clicking "Use desktop version" user can use mobile browser.

@eonbhuwan
Copy link
Author

eonbhuwan commented Dec 26, 2022

Is this the same as my case with the latest release? I'm trying to allow mobile browsers without Mobile app promo (previously it worked).

If I use disableDeepLinking : true (or false) together with MOBILE_APP_PROMO: false, - user can't join any room with mobile browser - with error "Video chat isn't available on mobile. Please use jitsi meet on desktop to join calls." (both on Android/iOS)

After clicking "Use desktop version" user can use mobile browser.

We are not using MOBILE_APP_PROMO, but disableDeepLinking : true was working perfectly before as it was skipping the selection "where to launch jitsi video". But recently it has stopped working and now the selection page has started to appear. User are unable to connect directly on video but has to choose the launch in web option first.

@imedia3
Copy link

imedia3 commented Dec 26, 2022

We are not using MOBILE_APP_PROMO, but disableDeepLinking : true was working perfectly before as it was skipping the selection "where to launch jitsi video".

Thanks, anyway, in our case the main problem is the same disableDeepLinking: true doesn't work as expected.

By the way, if I use this setting in URL, it works. i.e. jitsi-meet-domain.com/RoomName#config.disableDeepLinking=true , but still, I think everything is well with our interface_config.js and config.js because other settings from both files working as they set.

Another refs. with recently updates:
https://community.jitsi.org/t/launch-in-web-with-iframe-api/117614/7
https://community.jitsi.org/t/disabledeeplinking-true-has-stopped-working/119920

@saghul
Copy link
Member

saghul commented Dec 26, 2022

This is likely the culprit: #12704

@horymury will take a look when available.

Please note it's the end of the year and some of us are trying to stay off and recharge our batteries.

@eonbhuwan
Copy link
Author

This is likely the culprit: #12704

@horymury will take a look when available.

Please note it's the end of the year and some of us are trying to stay off and recharge our batteries.

Thanks, updated the code as per recent changes and its working now. Please enjoy.

@horymury
Copy link
Contributor

horymury commented Jan 4, 2023

@saghul do we want the deprecated config (if set) to take precedence over the new one for disabling deeplinking?

Thank you.

@saghul
Copy link
Member

saghul commented Jan 5, 2023

If the new one is not set, then the old one should work.

@horymury
Copy link
Contributor

horymury commented Jan 5, 2023

If the new one is not set, then the old one should work.

The new one is set on the deploy - so currently the old one is completely ignored

@DamjanJovanovic
Copy link

There is definitely still a bug here, possibly because in react/features/deep-linking/functions.ts the getDeepLinkingPage() function does a "return Promise.resolve()", and then back in react/features/app/getRouteToRender.web.ts function _getWebConferenceRoute() cannot convert void to boolean in the "if (deepLinkComponent)".

@horymury
Copy link
Contributor

horymury commented Jan 29, 2024

There is definitely still a bug here, possibly because in react/features/deep-linking/functions.ts the getDeepLinkingPage() function does a "return Promise.resolve()", and then back in react/features/app/getRouteToRender.web.ts function _getWebConferenceRoute() cannot convert void to boolean in the "if (deepLinkComponent)".

@DamjanJovanovic the given if is falsy when deepLinkComponent is null or undefined- the above should not be a problem. Could you please describe how the issue you encountered manifests? Have you tried the new config overwrite for disabling/enabling deeplinking? :

// disabled: false,

@DamjanJovanovic
Copy link

There is definitely still a bug here, possibly because in react/features/deep-linking/functions.ts the getDeepLinkingPage() function does a "return Promise.resolve()", and then back in react/features/app/getRouteToRender.web.ts function _getWebConferenceRoute() cannot convert void to boolean in the "if (deepLinkComponent)".

@DamjanJovanovic the given if is falsy when deepLinkComponent is null or undefined- the above should not be a problem. Could you please describe how the issue you encountered manifests? Have you tried the new config overwrite for disabling/enabling deeplinking? :

// disabled: false,

On my self-hosted Debian box, with clients using the IFrame API, in /usr/share/jitsi-meet-web-config/config.js I had both:

    disableDeepLinking: true,
    deeplinking: {
        disabled: true,
    },

and it still wasn't working. The only way I got it to work is by hacking the deep linking code to completely disable it with my patch below, then building the patched jitsi-meet project (npm i && make), then copying libs/app.min.js* and libs/external_api.min.js* and libs/lib-jitsi-meet.min.* and overwriting the files in /usr/share/jitsi-meet/libs with them, then rebooting. Then, it was crucial to clear the cache/cookies/history/everything in the client web browsers (but why?). Only then did it start working.

While developing this patch, I got some compile-time error about conversion of void to boolean during "make", which is why I return Promise.resolve(false); instead of return Promise.resolve();, but I can't seem to reproduce this any more.

diff --git a/react/features/deep-linking/functions.ts b/react/features/deep-linking/functions.ts
index d48b95bee..93b684734 100644
--- a/react/features/deep-linking/functions.ts
+++ b/react/features/deep-linking/functions.ts
@@ -64,9 +64,12 @@ export function getDeepLinkingPage(state: IReduxState) {
             || !room
             || state['features/base/config'].deeplinking?.disabled
             || (isVpaasMeeting(state) && (!appScheme || appScheme === 'com.8x8.meet'))) {
-        return Promise.resolve();
+        return Promise.resolve(false);
     }
 
+    // Stop deep linking from EVER HAPPENING:
+    return Promise.resolve(false);
+/*
     if (isMobileBrowser()) { // mobile
         const mobileAppPromo
             = typeof interfaceConfig === 'object'
@@ -80,6 +83,7 @@ export function getDeepLinkingPage(state: IReduxState) {
     return _openDesktopApp(state).then(
         // eslint-disable-next-line no-confusing-arrow
         result => result ? DeepLinkingDesktopPage : undefined);
+*/
 }
 
 /**

Debian packages installed are:
jitsi-meet 2.0.9078-1
jitsi-meet-prosody 1.0.7629-1
jitsi-meet-turnserver 1.0.7629-1
jitsi-meet-web 1.0.7629-1
jitsi-meet-web-config 1.0.7629-1
jitsi-videobridge2 2.3-59-g5c48e421-1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants