121 lines
4.5 KiB
HTML
121 lines
4.5 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, viewport-fit=cover" />
|
|
<title>Vojo</title>
|
|
<meta name="name" content="Vojo" />
|
|
<meta name="author" content="Vojo" />
|
|
<meta
|
|
name="description"
|
|
content="A Matrix client where you can enjoy the conversation using simple, elegant and secure interface protected by e2ee with the power of open source."
|
|
/>
|
|
<meta
|
|
name="keywords"
|
|
content="vojo, matrix, matrix client, matrix.org"
|
|
/>
|
|
|
|
<meta property="og:title" content="Vojo" />
|
|
<meta property="og:url" content="https://vojo.chat" />
|
|
<meta property="og:image" content="https://vojo.chat/public/android/android-chrome-512x512.png" />
|
|
<meta
|
|
property="og:description"
|
|
content="A Matrix client where you can enjoy the conversation using simple, elegant and secure interface protected by e2ee with the power of open source."
|
|
/>
|
|
<meta name="theme-color" content="#000000" />
|
|
|
|
<link id="favicon" rel="shortcut icon" type="image/svg+xml" href="./public/res/svg/vojo.svg" />
|
|
|
|
<link rel="manifest" href="/manifest.json" />
|
|
<meta name="mobile-web-app-capable" content="yes" />
|
|
<meta name="application-name" content="Vojo" />
|
|
<meta name="apple-mobile-web-app-title" content="Vojo" />
|
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
|
|
|
<link
|
|
rel="apple-touch-icon"
|
|
sizes="57x57"
|
|
href="./public/res/apple/apple-touch-icon-57x57.png"
|
|
/>
|
|
<link
|
|
rel="apple-touch-icon"
|
|
sizes="60x60"
|
|
href="./public/res/apple/apple-touch-icon-60x60.png"
|
|
/>
|
|
<link
|
|
rel="apple-touch-icon"
|
|
sizes="72x72"
|
|
href="./public/res/apple/apple-touch-icon-72x72.png"
|
|
/>
|
|
<link
|
|
rel="apple-touch-icon"
|
|
sizes="76x76"
|
|
href="./public/res/apple/apple-touch-icon-76x76.png"
|
|
/>
|
|
<link
|
|
rel="apple-touch-icon"
|
|
sizes="114x114"
|
|
href="./public/res/apple/apple-touch-icon-114x114.png"
|
|
/>
|
|
<link
|
|
rel="apple-touch-icon"
|
|
sizes="120x120"
|
|
href="./public/res/apple/apple-touch-icon-120x120.png"
|
|
/>
|
|
<link
|
|
rel="apple-touch-icon"
|
|
sizes="144x144"
|
|
href="./public/res/apple/apple-touch-icon-144x144.png"
|
|
/>
|
|
<link
|
|
rel="apple-touch-icon"
|
|
sizes="152x152"
|
|
href="./public/res/apple/apple-touch-icon-152x152.png"
|
|
/>
|
|
<link
|
|
rel="apple-touch-icon"
|
|
sizes="167x167"
|
|
href="./public/res/apple/apple-touch-icon-167x167.png"
|
|
/>
|
|
<link
|
|
rel="apple-touch-icon"
|
|
sizes="180x180"
|
|
href="./public/res/apple/apple-touch-icon-180x180.png"
|
|
/>
|
|
</head>
|
|
<body id="appBody">
|
|
<script>
|
|
window.global ||= window;
|
|
</script>
|
|
<script>
|
|
// Deep-link handoff for https://vojo.chat/u/<user> clicked from in-app
|
|
// browsers (Telegram etc.) that don't honor verified App Links. Fires
|
|
// BEFORE the React bundle: we try to pop out of the webview via an
|
|
// intent:// URL that includes a browser_fallback_url back to the SPA
|
|
// with ?web=1 so users without the app land on the normal page and we
|
|
// don't loop. Guards: only on vojo.chat (not Capacitor's localhost),
|
|
// only on Android, only for /u/ paths, and not when ?web=1 is set.
|
|
(function () {
|
|
try {
|
|
if (location.hostname !== 'vojo.chat') return;
|
|
if (!location.pathname.indexOf || location.pathname.indexOf('/u/') !== 0) return;
|
|
if (location.search.indexOf('web=1') !== -1) return;
|
|
if (!/Android/.test(navigator.userAgent || '')) return;
|
|
if (window.Capacitor && window.Capacitor.isNativePlatform && window.Capacitor.isNativePlatform()) return;
|
|
var pathAndQuery = location.pathname + location.search + location.hash;
|
|
var fallback = 'https://vojo.chat' + location.pathname +
|
|
(location.search ? location.search + '&web=1' : '?web=1') + location.hash;
|
|
var intent = 'intent://vojo.chat' + pathAndQuery +
|
|
'#Intent;scheme=https;package=chat.vojo.app;S.browser_fallback_url=' +
|
|
encodeURIComponent(fallback) + ';end';
|
|
location.replace(intent);
|
|
} catch (e) {}
|
|
})();
|
|
</script>
|
|
<div id="root"></div>
|
|
<div id="portalContainer"></div>
|
|
<script type="module" src="./src/index.tsx"></script>
|
|
</body>
|
|
</html>
|