167 lines
4.3 KiB
HTML
167 lines
4.3 KiB
HTML
<!doctype html>
|
|
<html lang="zh-CN" data-build-time="%VITE_APP_BUILD_TIME%" data-commit="%VITE_APP_BUILD_COMMIT%">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
|
|
<!-- <link rel="icon" href="data:;base64,iVBORw0KGgo=" /> -->
|
|
<link rel="icon" href="/favicon.ico" />
|
|
|
|
<!-- viewport-fit=cover, -->
|
|
<meta
|
|
name="viewport"
|
|
content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"
|
|
/>
|
|
<script>
|
|
window.addEventListener('DOMContentLoaded', function () {
|
|
window.ontouchstart = function () {};
|
|
window.ontouchend = function () {};
|
|
});
|
|
|
|
window.onloadX = function () {
|
|
// 禁止双指缩放
|
|
document.addEventListener('touchstart', function (event) {
|
|
if (event.touches.length > 1) {
|
|
event.preventDefault();
|
|
}
|
|
});
|
|
|
|
// 禁止双击放大
|
|
var lastTouchEnd = 0;
|
|
document.addEventListener(
|
|
'touchend',
|
|
function (event) {
|
|
var now = new Date().getTime();
|
|
if (now - lastTouchEnd <= 300) {
|
|
event.preventDefault();
|
|
}
|
|
lastTouchEnd = now;
|
|
},
|
|
false,
|
|
);
|
|
|
|
// 禁止手势事件
|
|
document.addEventListener('gesturestart', function (event) {
|
|
event.preventDefault();
|
|
});
|
|
};
|
|
</script>
|
|
|
|
<meta name="color-scheme" content="light dark" />
|
|
<meta name="format-detection" content="telephone=no" />
|
|
|
|
<title>%VITE_APP_TITLE%</title>
|
|
|
|
<style type="text/css">
|
|
*,
|
|
::before,
|
|
::after {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
html,
|
|
body,
|
|
#app {
|
|
height: 100%;
|
|
}
|
|
|
|
html,
|
|
body {
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
body {
|
|
text-rendering: optimizeLegibility;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
</style>
|
|
|
|
<style type="text/css">
|
|
#app {
|
|
min-height: 100vh;
|
|
}
|
|
|
|
@supports (min-height: 100dvh) {
|
|
#app {
|
|
min-height: 100dvh;
|
|
}
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<div id="app">
|
|
<style type="text/css">
|
|
@keyframes spin {
|
|
to {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
.app-loading-spinner {
|
|
width: 40px;
|
|
height: 40px;
|
|
border: 3px solid rgba(0, 0, 0, 0.08);
|
|
border-top-color: #333;
|
|
border-radius: 50%;
|
|
animation: spin 0.8s linear infinite;
|
|
}
|
|
@media (prefers-color-scheme: dark) {
|
|
body {
|
|
background-color: #0f0f0f;
|
|
}
|
|
.app-loading-spinner {
|
|
border: 3px solid rgba(255, 255, 255, 0.1);
|
|
border-top-color: #e5e5e5;
|
|
}
|
|
}
|
|
</style>
|
|
<div
|
|
class="app-loading"
|
|
style="
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-height: 100vh;
|
|
min-height: 100dvh;
|
|
"
|
|
>
|
|
<div class="app-loading-spinner"></div>
|
|
</div>
|
|
</div>
|
|
<script type="module" src="/src/main.ts"></script>
|
|
<!-- <script src="https://testingcf.jsdelivr.net/npm/@vant/touch-emulator/dist/index.min.js"></script> -->
|
|
<!-- .min.js 是 jsDelivr 的特殊处理 -->
|
|
<!-- <script src="https://unpkg.luckincdn.com/@vant/touch-emulator@1.4.0/dist/index.js"></script> -->
|
|
</body>
|
|
<script>
|
|
(function (d) {
|
|
var config = {
|
|
kitId: 'whk2tto',
|
|
scriptTimeout: 3000,
|
|
async: true,
|
|
},
|
|
h = d.documentElement,
|
|
t = setTimeout(function () {
|
|
h.className = h.className.replace(/\bwf-loading\b/g, '') + ' wf-inactive';
|
|
}, config.scriptTimeout),
|
|
tk = d.createElement('script'),
|
|
f = false,
|
|
s = d.getElementsByTagName('script')[0],
|
|
a;
|
|
h.className += ' wf-loading';
|
|
tk.src = 'https://use.typekit.net/' + config.kitId + '.js';
|
|
tk.async = true;
|
|
tk.onload = tk.onreadystatechange = function () {
|
|
a = this.readyState;
|
|
if (f || (a && a != 'complete' && a != 'loaded')) return;
|
|
f = true;
|
|
clearTimeout(t);
|
|
try {
|
|
Typekit.load(config);
|
|
} catch (e) {}
|
|
};
|
|
s.parentNode.insertBefore(tk, s);
|
|
}); /* (document) */
|
|
</script>
|
|
</html>
|