diff options
author | Felipe Erias <felipeerias@igalia.com> | 2021-10-29 14:38:21 +0900 |
---|---|---|
committer | Felipe Erias <felipeerias@igalia.com> | 2021-10-29 14:38:21 +0900 |
commit | a3d903e6b27a12bc2472972e585c351710418e42 (patch) | |
tree | 338baa9748ba371e14a17cfae4eedfbc0599a6dd /web |
Initial commit
Diffstat (limited to 'web')
-rw-r--r-- | web/favicon.png | bin | 0 -> 917 bytes | |||
-rw-r--r-- | web/icons/Icon-192.png | bin | 0 -> 5292 bytes | |||
-rw-r--r-- | web/icons/Icon-512.png | bin | 0 -> 8252 bytes | |||
-rw-r--r-- | web/index.html | 98 | ||||
-rw-r--r-- | web/manifest.json | 23 |
5 files changed, 121 insertions, 0 deletions
diff --git a/web/favicon.png b/web/favicon.png Binary files differnew file mode 100644 index 0000000..8aaa46a --- /dev/null +++ b/web/favicon.png diff --git a/web/icons/Icon-192.png b/web/icons/Icon-192.png Binary files differnew file mode 100644 index 0000000..b749bfe --- /dev/null +++ b/web/icons/Icon-192.png diff --git a/web/icons/Icon-512.png b/web/icons/Icon-512.png Binary files differnew file mode 100644 index 0000000..88cfd48 --- /dev/null +++ b/web/icons/Icon-512.png diff --git a/web/index.html b/web/index.html new file mode 100644 index 0000000..45de5bb --- /dev/null +++ b/web/index.html @@ -0,0 +1,98 @@ +<!DOCTYPE html> +<html> +<head> + <!-- + If you are serving your web app in a path other than the root, change the + href value below to reflect the base path you are serving from. + + The path provided below has to start and end with a slash "/" in order for + it to work correctly. + + For more details: + * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base + --> + <base href="/"> + + <meta charset="UTF-8"> + <meta content="IE=Edge" http-equiv="X-UA-Compatible"> + <meta name="description" content="A new Flutter project."> + + <!-- iOS meta tags & icons --> + <meta name="apple-mobile-web-app-capable" content="yes"> + <meta name="apple-mobile-web-app-status-bar-style" content="black"> + <meta name="apple-mobile-web-app-title" content="flutter_homescreen"> + <link rel="apple-touch-icon" href="icons/Icon-192.png"> + + <title>flutter_homescreen</title> + <link rel="manifest" href="manifest.json"> +</head> +<body> + <!-- This script installs service_worker.js to provide PWA functionality to + application. For more information, see: + https://developers.google.com/web/fundamentals/primers/service-workers --> + <script> + var serviceWorkerVersion = null; + var scriptLoaded = false; + function loadMainDartJs() { + if (scriptLoaded) { + return; + } + scriptLoaded = true; + var scriptTag = document.createElement('script'); + scriptTag.src = 'main.dart.js'; + scriptTag.type = 'application/javascript'; + document.body.append(scriptTag); + } + + if ('serviceWorker' in navigator) { + // Service workers are supported. Use them. + window.addEventListener('load', function () { + // Wait for registration to finish before dropping the <script> tag. + // Otherwise, the browser will load the script multiple times, + // potentially different versions. + var serviceWorkerUrl = 'flutter_service_worker.js?v=' + serviceWorkerVersion; + navigator.serviceWorker.register(serviceWorkerUrl) + .then((reg) => { + function waitForActivation(serviceWorker) { + serviceWorker.addEventListener('statechange', () => { + if (serviceWorker.state == 'activated') { + console.log('Installed new service worker.'); + loadMainDartJs(); + } + }); + } + if (!reg.active && (reg.installing || reg.waiting)) { + // No active web worker and we have installed or are installing + // one for the first time. Simply wait for it to activate. + waitForActivation(reg.installing ?? reg.waiting); + } else if (!reg.active.scriptURL.endsWith(serviceWorkerVersion)) { + // When the app updates the serviceWorkerVersion changes, so we + // need to ask the service worker to update. + console.log('New service worker available.'); + reg.update(); + waitForActivation(reg.installing); + } else { + // Existing service worker is still good. + console.log('Loading app from service worker.'); + loadMainDartJs(); + } + }); + + // If service worker doesn't succeed in a reasonable amount of time, + // fallback to plaint <script> tag. + setTimeout(() => { + if (!scriptLoaded) { + console.warn( + 'Failed to load app from service worker. Falling back to plain <script> tag.', + ); + loadMainDartJs(); + } + }, 4000); + }); + } else { + // Service workers not supported. Just drop the <script> tag. + loadMainDartJs(); + } + </script> +</body> +</html> diff --git a/web/manifest.json b/web/manifest.json new file mode 100644 index 0000000..016f128 --- /dev/null +++ b/web/manifest.json @@ -0,0 +1,23 @@ +{ + "name": "flutter_homescreen", + "short_name": "flutter_homescreen", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A new Flutter project.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} |