d942d553ef
This allows to install it as an app, and provide offline support (after the first run). Practically, this boils down to adding a JSON file as a manifest, an offline page to be displayed when the cached files are not avaialble, and a JS file to cache resources and return them. The reason for the "first run requirements" is that some browsers, will emit an "install" by just visiting the page (to see if the JS code is compatibile), and we do not want to force casual visitors to just download the 10 MiB+ compressed editor WebAssembly file without pressing the start button. Special thanks to Hugo Locurcio (Calinou) for the initial work.
42 lines
1,000 B
HTML
42 lines
1,000 B
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" />
|
|
<title>You are offline</title>
|
|
<style>
|
|
html {
|
|
background-color: #333b4f;
|
|
color: #e0e0e0;
|
|
}
|
|
|
|
body {
|
|
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
margin: 2rem;
|
|
}
|
|
|
|
p {
|
|
margin-block: 1rem;
|
|
}
|
|
|
|
button {
|
|
display: block;
|
|
padding: 1rem 2rem;
|
|
margin: 3rem auto 0;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h1>You are offline</h1>
|
|
<p>This application requires an Internet connection to run for the first time.</p>
|
|
<p>Press the button below to try reloading:</p>
|
|
<button type="button">Reload</button>
|
|
|
|
<script>
|
|
document.querySelector("button").addEventListener("click", () => {
|
|
window.location.reload();
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|