feat: support install guide app deeplinks

This commit is contained in:
3252a8
2026-05-23 09:52:26 +03:00
parent ce0d4dccf7
commit 19ba5c8f11
2 changed files with 42 additions and 5 deletions
+40
View File
@@ -1055,6 +1055,44 @@
window.location.assign(url);
}
function hasControlChars(value) {
return Array.from(String(value || "")).some((char) => {
const code = char.charCodeAt(0);
return code <= 31 || code === 127;
});
}
function openAppLink(url) {
const raw = String(url || "").trim();
if (!raw || hasControlChars(raw) || /^(javascript|data|vbscript):/i.test(raw)) {
return;
}
if (/^https?:\/\//i.test(raw)) {
openExternalLink(raw);
return;
}
if (/^tg:\/\//i.test(raw) && tg?.openTelegramLink) {
try {
tg.openTelegramLink(raw);
return;
} catch {
// Fall back to the generic deeplink path below.
}
}
try {
const anchor = document.createElement("a");
anchor.href = raw;
anchor.target = "_self";
anchor.rel = "noreferrer";
anchor.style.display = "none";
document.body.appendChild(anchor);
anchor.click();
anchor.remove();
} catch {
window.location.assign(raw);
}
}
function openConnectLink() {
const url = subscription?.connect_url || subscription?.config_link;
if (!url) {
@@ -1374,6 +1412,7 @@
{goHome}
openConnectLink={openPublicConnectLink}
{openExternalLink}
{openAppLink}
{copyText}
{t}
publicMode
@@ -1484,6 +1523,7 @@
{goHome}
{openConnectLink}
{openExternalLink}
{openAppLink}
{copyText}
{t}
/>
@@ -26,6 +26,7 @@
export let goHome = () => {};
export let openConnectLink = () => {};
export let openExternalLink = () => {};
export let openAppLink = null;
export let copyText = async () => {};
export let t = (key, _params = {}, fallback = "") => fallback || key;
export let publicMode = false;
@@ -197,11 +198,7 @@
openConnectLink();
return;
}
if (/^https?:\/\//i.test(url)) {
openExternalLink(url);
return;
}
window.location.assign(url);
(openAppLink || openExternalLink)(url);
}
async function handleButton(button) {