Files
jitsi-meet/react/features/deep-linking/openDesktopApp.ts
Christoph Settgast bd3012f110 feat(deeplinking): Desktop deeplinking configurable (default off) and using jitsi-meet-electron (#14259)
As we have the jitsi-meet-electron app, lets allow deployments to use it.

Allow deployments to enable desktop deeplinking without the need to re-implement _openDesktopApp()
Disable it by default to keep the current behaviour (deeplinking on mobile on, on desktop off)

This feature is meant as purely opt-in.

Signed-off-by: Christoph Settgast <csett86_git@quicksands.de>
2024-01-21 21:02:16 +01:00

26 lines
845 B
TypeScript

import { IReduxState } from '../app/types';
import { URI_PROTOCOL_PATTERN } from '../base/util/uri';
/**
* Opens the desktop app.
*
* @param {Object} _state - Object containing current redux state.
* @returns {Promise<boolean>} - Resolves with true if the attempt to open the desktop app was successful and resolves
* with false otherwise.
*/
export function _openDesktopApp(_state: Object) {
const state = _state as IReduxState;
const deeplinkingDesktop = state['features/base/config'].deeplinking?.desktop;
if (deeplinkingDesktop?.enabled) {
const { appScheme } = deeplinkingDesktop;
const regex = new RegExp(URI_PROTOCOL_PATTERN, 'gi');
window.location.href = window.location.href.replace(regex, `${appScheme}:`);
return Promise.resolve(true);
}
return Promise.resolve(false);
}