Add version 1_3 to release --'
1
RELEASE/Version1_3/Changelog - Copy.txt
Normal file
@ -0,0 +1 @@
|
||||
Ajout du Module quizz
|
||||
26
RELEASE/Version1_3/How to deploy - Copy.txt
Normal file
@ -0,0 +1,26 @@
|
||||
- Create BAK folder !!
|
||||
- FTP fichiers vers rpi (home/Manager_app)
|
||||
- puis mv -v /home/ubuntu/Manager_app/* /var/www/html/manager/
|
||||
- Changer nginx : etc/nginx/sites-enabled
|
||||
- Changer le port du service vers le 5002
|
||||
- Ajouter ou décommenter (check addresse ip):
|
||||
|
||||
server {
|
||||
listen 8080;
|
||||
listen [::]:8080;
|
||||
|
||||
server_name 192.168.31.96;
|
||||
|
||||
root /var/www/html/manager;
|
||||
index index.html;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ =404;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
- Tester nginx : sudo nginx -t
|
||||
- Reload nginx : sudo systemctl reload nginx
|
||||
|
||||
Connect manager via http://192.168.1.19:8089 => Si pas ça, peut aller changer dans le main.dart.js puis faire un CTRL MAJ R
|
||||
1
RELEASE/Version1_3/WEB - Copy/.last_build_id
Normal file
@ -0,0 +1 @@
|
||||
2850532bac056cc3a4316af3c232a077
|
||||
1
RELEASE/Version1_3/WEB - Copy/assets/AssetManifest.json
Normal file
@ -0,0 +1 @@
|
||||
{"assets/animations/MDLF_animation.flr":["assets/animations/MDLF_animation.flr"],"assets/files/session.json":["assets/files/session.json"],"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"]}
|
||||
1
RELEASE/Version1_3/WEB - Copy/assets/FontManifest.json
Normal file
@ -0,0 +1 @@
|
||||
[{"family":"MaterialIcons","fonts":[{"asset":"fonts/MaterialIcons-Regular.otf"}]},{"family":"packages/cupertino_icons/CupertinoIcons","fonts":[{"asset":"packages/cupertino_icons/assets/CupertinoIcons.ttf"}]}]
|
||||
16755
RELEASE/Version1_3/WEB - Copy/assets/NOTICES
Normal file
BIN
RELEASE/Version1_3/WEB - Copy/favicon.png
Normal file
|
After Width: | Height: | Size: 917 B |
219
RELEASE/Version1_3/WEB - Copy/flutter_service_worker.js
Normal file
@ -0,0 +1,219 @@
|
||||
'use strict';
|
||||
const MANIFEST = 'flutter-app-manifest';
|
||||
const TEMP = 'flutter-temp-cache';
|
||||
const CACHE_NAME = 'flutter-app-cache';
|
||||
const RESOURCES = {
|
||||
"assets/AssetManifest.json": "7ceda6dd13738309d0b4d4d2702b3010",
|
||||
"assets/assets/animations/MDLF_animation.flr": "5151e91ce20a70dbc097f01a7ec97497",
|
||||
"assets/assets/files/session.json": "d41d8cd98f00b204e9800998ecf8427e",
|
||||
"assets/FontManifest.json": "dc3d03800ccca4601324923c0b1d6d57",
|
||||
"assets/fonts/MaterialIcons-Regular.otf": "4e6447691c9509f7acdbf8a931a85ca1",
|
||||
"assets/NOTICES": "838205c3fa2fbd0319ce48d7c8347af6",
|
||||
"assets/packages/cupertino_icons/assets/CupertinoIcons.ttf": "6d342eb68f170c97609e9da345464e5e",
|
||||
"favicon.png": "5dcef449791fa27946b3d35ad8803796",
|
||||
"icons/android-icon-144x144.png": "25849c1de85e1ac87dfde295a6c97dfe",
|
||||
"icons/android-icon-192x192.png": "2f38b513d97a00ddf494059260c193b5",
|
||||
"icons/android-icon-36x36.png": "5317b23569b5976037738ae5dec04859",
|
||||
"icons/android-icon-48x48.png": "1f7a48a32ed8b3d4c1e6fa7734534fc7",
|
||||
"icons/android-icon-72x72.png": "6db0636ec0c228480197e362f3f32fe5",
|
||||
"icons/android-icon-96x96.png": "d925090c0a2f6b1a24078a8640fb18e4",
|
||||
"icons/apple-icon-114x114.png": "ddd67f65d43fb30b64ebf7b3ff702427",
|
||||
"icons/apple-icon-120x120.png": "b6bee39cb32e80068c5e1e87c600ffbc",
|
||||
"icons/apple-icon-144x144.png": "25849c1de85e1ac87dfde295a6c97dfe",
|
||||
"icons/apple-icon-152x152.png": "42b1ae2dedce452961803388468d6eae",
|
||||
"icons/apple-icon-180x180.png": "17655db1c0eaff334ff6208d302a576a",
|
||||
"icons/apple-icon-57x57.png": "ffd9c2b4dfe93b5874edbef7a3829495",
|
||||
"icons/apple-icon-60x60.png": "5984c1c3aca2b357f604855446cf30f5",
|
||||
"icons/apple-icon-72x72.png": "6db0636ec0c228480197e362f3f32fe5",
|
||||
"icons/apple-icon-76x76.png": "45bb7aabc4d7211f0ee13c77e6300ec4",
|
||||
"icons/apple-icon-precomposed.png": "9cd7f52d632b4bb32f3b701eed4ec663",
|
||||
"icons/apple-icon.png": "9cd7f52d632b4bb32f3b701eed4ec663",
|
||||
"icons/browserconfig.xml": "653d077300a12f09a69caeea7a8947f8",
|
||||
"icons/favicon-16x16.png": "4fca1fd9f6c90305df787a99fe7abf62",
|
||||
"icons/favicon-32x32.png": "e78cf52bb5861c5829d6f2b63e0f703e",
|
||||
"icons/favicon-96x96.png": "91b367951bf21712259a3aa598456d29",
|
||||
"icons/favicon.ico": "941f61fe5dd76ff538f9fd9456705d7a",
|
||||
"icons/Icon-192.png": "ac9a721a12bbc803b44f645561ecb1e1",
|
||||
"icons/Icon-512.png": "96e752610906ba2a93c65f8abe1645f1",
|
||||
"icons/manifest.json": "b58fcfa7628c9205cb11a1b2c3e8f99a",
|
||||
"icons/ms-icon-144x144.png": "7f185a22f8c85fb7ccd97cd7711214e5",
|
||||
"icons/ms-icon-150x150.png": "5e33aababf68472e0bcc89c752e33fec",
|
||||
"icons/ms-icon-310x310.png": "9eace62e32aec3853604ae2919eca0ea",
|
||||
"icons/ms-icon-70x70.png": "6720855c40d6a5ba6cd4a384605fc270",
|
||||
"index.html": "b934f3f00758439d39e79bff55598ca7",
|
||||
"/": "b934f3f00758439d39e79bff55598ca7",
|
||||
"main.dart.js": "d92d406acbbcdeb9b4675562b75a0cd3",
|
||||
"manifest.json": "2ea69ab3cf494be775c9c65d32512a45",
|
||||
"version.json": "c659aa18797537bf2ce076aa3126b86e"
|
||||
};
|
||||
|
||||
// The application shell files that are downloaded before a service worker can
|
||||
// start.
|
||||
const CORE = [
|
||||
"/",
|
||||
"main.dart.js",
|
||||
"index.html",
|
||||
"assets/NOTICES",
|
||||
"assets/AssetManifest.json",
|
||||
"assets/FontManifest.json"];
|
||||
// During install, the TEMP cache is populated with the application shell files.
|
||||
self.addEventListener("install", (event) => {
|
||||
self.skipWaiting();
|
||||
return event.waitUntil(
|
||||
caches.open(TEMP).then((cache) => {
|
||||
return cache.addAll(
|
||||
CORE.map((value) => new Request(value, {'cache': 'reload'})));
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
// During activate, the cache is populated with the temp files downloaded in
|
||||
// install. If this service worker is upgrading from one with a saved
|
||||
// MANIFEST, then use this to retain unchanged resource files.
|
||||
self.addEventListener("activate", function(event) {
|
||||
return event.waitUntil(async function() {
|
||||
try {
|
||||
var contentCache = await caches.open(CACHE_NAME);
|
||||
var tempCache = await caches.open(TEMP);
|
||||
var manifestCache = await caches.open(MANIFEST);
|
||||
var manifest = await manifestCache.match('manifest');
|
||||
// When there is no prior manifest, clear the entire cache.
|
||||
if (!manifest) {
|
||||
await caches.delete(CACHE_NAME);
|
||||
contentCache = await caches.open(CACHE_NAME);
|
||||
for (var request of await tempCache.keys()) {
|
||||
var response = await tempCache.match(request);
|
||||
await contentCache.put(request, response);
|
||||
}
|
||||
await caches.delete(TEMP);
|
||||
// Save the manifest to make future upgrades efficient.
|
||||
await manifestCache.put('manifest', new Response(JSON.stringify(RESOURCES)));
|
||||
return;
|
||||
}
|
||||
var oldManifest = await manifest.json();
|
||||
var origin = self.location.origin;
|
||||
for (var request of await contentCache.keys()) {
|
||||
var key = request.url.substring(origin.length + 1);
|
||||
if (key == "") {
|
||||
key = "/";
|
||||
}
|
||||
// If a resource from the old manifest is not in the new cache, or if
|
||||
// the MD5 sum has changed, delete it. Otherwise the resource is left
|
||||
// in the cache and can be reused by the new service worker.
|
||||
if (!RESOURCES[key] || RESOURCES[key] != oldManifest[key]) {
|
||||
await contentCache.delete(request);
|
||||
}
|
||||
}
|
||||
// Populate the cache with the app shell TEMP files, potentially overwriting
|
||||
// cache files preserved above.
|
||||
for (var request of await tempCache.keys()) {
|
||||
var response = await tempCache.match(request);
|
||||
await contentCache.put(request, response);
|
||||
}
|
||||
await caches.delete(TEMP);
|
||||
// Save the manifest to make future upgrades efficient.
|
||||
await manifestCache.put('manifest', new Response(JSON.stringify(RESOURCES)));
|
||||
return;
|
||||
} catch (err) {
|
||||
// On an unhandled exception the state of the cache cannot be guaranteed.
|
||||
console.error('Failed to upgrade service worker: ' + err);
|
||||
await caches.delete(CACHE_NAME);
|
||||
await caches.delete(TEMP);
|
||||
await caches.delete(MANIFEST);
|
||||
}
|
||||
}());
|
||||
});
|
||||
|
||||
// The fetch handler redirects requests for RESOURCE files to the service
|
||||
// worker cache.
|
||||
self.addEventListener("fetch", (event) => {
|
||||
if (event.request.method !== 'GET') {
|
||||
return;
|
||||
}
|
||||
var origin = self.location.origin;
|
||||
var key = event.request.url.substring(origin.length + 1);
|
||||
// Redirect URLs to the index.html
|
||||
if (key.indexOf('?v=') != -1) {
|
||||
key = key.split('?v=')[0];
|
||||
}
|
||||
if (event.request.url == origin || event.request.url.startsWith(origin + '/#') || key == '') {
|
||||
key = '/';
|
||||
}
|
||||
// If the URL is not the RESOURCE list then return to signal that the
|
||||
// browser should take over.
|
||||
if (!RESOURCES[key]) {
|
||||
return;
|
||||
}
|
||||
// If the URL is the index.html, perform an online-first request.
|
||||
if (key == '/') {
|
||||
return onlineFirst(event);
|
||||
}
|
||||
event.respondWith(caches.open(CACHE_NAME)
|
||||
.then((cache) => {
|
||||
return cache.match(event.request).then((response) => {
|
||||
// Either respond with the cached resource, or perform a fetch and
|
||||
// lazily populate the cache.
|
||||
return response || fetch(event.request).then((response) => {
|
||||
cache.put(event.request, response.clone());
|
||||
return response;
|
||||
});
|
||||
})
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
self.addEventListener('message', (event) => {
|
||||
// SkipWaiting can be used to immediately activate a waiting service worker.
|
||||
// This will also require a page refresh triggered by the main worker.
|
||||
if (event.data === 'skipWaiting') {
|
||||
self.skipWaiting();
|
||||
return;
|
||||
}
|
||||
if (event.data === 'downloadOffline') {
|
||||
downloadOffline();
|
||||
return;
|
||||
}
|
||||
});
|
||||
|
||||
// Download offline will check the RESOURCES for all files not in the cache
|
||||
// and populate them.
|
||||
async function downloadOffline() {
|
||||
var resources = [];
|
||||
var contentCache = await caches.open(CACHE_NAME);
|
||||
var currentContent = {};
|
||||
for (var request of await contentCache.keys()) {
|
||||
var key = request.url.substring(origin.length + 1);
|
||||
if (key == "") {
|
||||
key = "/";
|
||||
}
|
||||
currentContent[key] = true;
|
||||
}
|
||||
for (var resourceKey of Object.keys(RESOURCES)) {
|
||||
if (!currentContent[resourceKey]) {
|
||||
resources.push(resourceKey);
|
||||
}
|
||||
}
|
||||
return contentCache.addAll(resources);
|
||||
}
|
||||
|
||||
// Attempt to download the resource online before falling back to
|
||||
// the offline cache.
|
||||
function onlineFirst(event) {
|
||||
return event.respondWith(
|
||||
fetch(event.request).then((response) => {
|
||||
return caches.open(CACHE_NAME).then((cache) => {
|
||||
cache.put(event.request, response.clone());
|
||||
return response;
|
||||
});
|
||||
}).catch((error) => {
|
||||
return caches.open(CACHE_NAME).then((cache) => {
|
||||
return cache.match(event.request).then((response) => {
|
||||
if (response != null) {
|
||||
return response;
|
||||
}
|
||||
throw error;
|
||||
});
|
||||
});
|
||||
})
|
||||
);
|
||||
}
|
||||
BIN
RELEASE/Version1_3/WEB - Copy/icons/Icon-192.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/Icon-512.png
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/android-icon-144x144.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/android-icon-192x192.png
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/android-icon-36x36.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/android-icon-48x48.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/android-icon-72x72.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/android-icon-96x96.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/apple-icon-114x114.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/apple-icon-120x120.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/apple-icon-144x144.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/apple-icon-152x152.png
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/apple-icon-180x180.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/apple-icon-57x57.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/apple-icon-60x60.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/apple-icon-72x72.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/apple-icon-76x76.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/apple-icon-precomposed.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/apple-icon.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
2
RELEASE/Version1_3/WEB - Copy/icons/browserconfig.xml
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>
|
||||
BIN
RELEASE/Version1_3/WEB - Copy/icons/favicon-16x16.png
Normal file
|
After Width: | Height: | Size: 826 B |
BIN
RELEASE/Version1_3/WEB - Copy/icons/favicon-32x32.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/favicon-96x96.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/favicon.ico
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
41
RELEASE/Version1_3/WEB - Copy/icons/manifest.json
Normal file
@ -0,0 +1,41 @@
|
||||
{
|
||||
"name": "App",
|
||||
"icons": [
|
||||
{
|
||||
"src": "\/android-icon-36x36.png",
|
||||
"sizes": "36x36",
|
||||
"type": "image\/png",
|
||||
"density": "0.75"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-48x48.png",
|
||||
"sizes": "48x48",
|
||||
"type": "image\/png",
|
||||
"density": "1.0"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-72x72.png",
|
||||
"sizes": "72x72",
|
||||
"type": "image\/png",
|
||||
"density": "1.5"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-96x96.png",
|
||||
"sizes": "96x96",
|
||||
"type": "image\/png",
|
||||
"density": "2.0"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-144x144.png",
|
||||
"sizes": "144x144",
|
||||
"type": "image\/png",
|
||||
"density": "3.0"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image\/png",
|
||||
"density": "4.0"
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
RELEASE/Version1_3/WEB - Copy/icons/ms-icon-144x144.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/ms-icon-150x150.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/ms-icon-310x310.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
RELEASE/Version1_3/WEB - Copy/icons/ms-icon-70x70.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
115
RELEASE/Version1_3/WEB - Copy/index.html
Normal file
@ -0,0 +1,115 @@
|
||||
<!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 application.">
|
||||
|
||||
<!-- 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="manager_app">
|
||||
<link rel="apple-touch-icon" href="icons/Icon-192.png">
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="icons/apple-icon-57x57.png">
|
||||
<link rel="apple-touch-icon" sizes="60x60" href="icons/apple-icon-60x60.png">
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="icons/apple-icon-72x72.png">
|
||||
<link rel="apple-touch-icon" sizes="76x76" href="icons/apple-icon-76x76.png">
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="icons/apple-icon-114x114.png">
|
||||
<link rel="apple-touch-icon" sizes="120x120" href="icons/apple-icon-120x120.png">
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="icons/apple-icon-144x144.png">
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="icons/apple-icon-152x152.png">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="icons/apple-icon-180x180.png">
|
||||
<link rel="icon" type="image/png" sizes="192x192" href="icons/android-icon-192x192.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="icons/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="96x96" href="icons/favicon-96x96.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="icons/favicon-16x16.png">
|
||||
<link rel="manifest" href="/manifest.json">
|
||||
<meta name="msapplication-TileColor" content="#ffffff">
|
||||
<meta name="msapplication-TileImage" content="icons/ms-icon-144x144.png">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
|
||||
<title>manager_app</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 = '3552968134';
|
||||
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>
|
||||
101782
RELEASE/Version1_3/WEB - Copy/main.dart.js
Normal file
59
RELEASE/Version1_3/WEB - Copy/manifest.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"name": "Manager app",
|
||||
"short_name": "Manager_app",
|
||||
"start_url": ".",
|
||||
"display": "standalone",
|
||||
"background_color": "#0175C2",
|
||||
"theme_color": "#0175C2",
|
||||
"description": "Manager application for MDLF",
|
||||
"orientation": "portrait-primary",
|
||||
"prefer_related_applications": false,
|
||||
"icons": [
|
||||
{
|
||||
"src": "icons/android-icon-36x36.png",
|
||||
"sizes": "36x36",
|
||||
"type": "image/png",
|
||||
"density": "0.75"
|
||||
},
|
||||
{
|
||||
"src": "icons/android-icon-48x48.png",
|
||||
"sizes": "48x48",
|
||||
"type": "image/png",
|
||||
"density": "1.0"
|
||||
},
|
||||
{
|
||||
"src": "icons/android-icon-72x72.png",
|
||||
"sizes": "72x72",
|
||||
"type": "image/png",
|
||||
"density": "1.5"
|
||||
},
|
||||
{
|
||||
"src": "icons/android-icon-96x96.png",
|
||||
"sizes": "96x96",
|
||||
"type": "image/png",
|
||||
"density": "2.0"
|
||||
},
|
||||
{
|
||||
"src": "icons/android-icon-144x144.png",
|
||||
"sizes": "144x144",
|
||||
"type": "image/png",
|
||||
"density": "3.0"
|
||||
},
|
||||
{
|
||||
"src": "icons/android-icon-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"density": "4.0"
|
||||
},
|
||||
{
|
||||
"src": "icons/Icon-192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "icons/Icon-512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
]
|
||||
}
|
||||
1
RELEASE/Version1_3/WEB - Copy/version.json
Normal file
@ -0,0 +1 @@
|
||||
{"app_name":"manager_app","version":"1.0.0","build_number":"1","package_name":"manager_app"}
|
||||