Files
huly-platform/dev/prod/src/app-integration-tools.ts
T
Andrey SobolevandGitHub 0a682d03e3 Switch huly core (#10041)
* Switch to huly.core

Signed-off-by: Andrey Sobolev <haiodo@gmail.com>

* Fix build

Signed-off-by: Andrey Sobolev <haiodo@gmail.com>

---------

Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2025-10-07 20:23:46 +05:00

46 lines
1.3 KiB
TypeScript

const FLAG_OPEN_IN_DESKTOP = 'flagOpenInDesktopApp'
const TIMESTAMP_OPEN_IN_DESKTOP = 'timeOpenInDesktopApp'
const TIMEOUT_OPEN_IN_DESKTOP = 24 * 60 * 60 * 1000
export function tryOpenInDesktopApp (protocol: string) {
if (!window.location.origin) {
return
}
// Once for a new TAB
if (
window.sessionStorage &&
(window.sessionStorage.getItem(FLAG_OPEN_IN_DESKTOP) === 'true' ||
window.localStorage.getItem(FLAG_OPEN_IN_DESKTOP) === 'true')
) {
return
}
window.sessionStorage.setItem(FLAG_OPEN_IN_DESKTOP, 'true')
// Once in timeout
if (window.localStorage && window.localStorage.getItem(TIMESTAMP_OPEN_IN_DESKTOP)) {
const timeStr = window.localStorage.getItem(TIMESTAMP_OPEN_IN_DESKTOP)
const time = Number(timeStr)
const now = Date.now()
if (now - time < TIMEOUT_OPEN_IN_DESKTOP) {
return
}
}
window.localStorage.setItem(TIMESTAMP_OPEN_IN_DESKTOP, Date.now().toString())
// Filter only URLs inside a workbench
const link = window.location.toString()
if (!link.includes('/workbench/')) {
return
}
const deepLink = link.replace('http://', protocol).replace('https://', protocol)
const iframe = document.createElement('iframe')
iframe.style.display = 'none'
iframe.src = deepLink
document.body.appendChild(iframe)
}