Loading...
+
+
+ An unhandled error has occurred.
+
Reload
+
🗙
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/LearningChineseSimplified/wwwroot/manifest.json b/LearningChineseSimplified/wwwroot/manifest.json
new file mode 100644
index 0000000..60e69d5
--- /dev/null
+++ b/LearningChineseSimplified/wwwroot/manifest.json
@@ -0,0 +1,16 @@
+{
+ "name": "LearningChineseSimplified",
+ "short_name": "LearningChineseSimplified",
+ "start_url": "./",
+ "display": "standalone",
+ "background_color": "#ffffff",
+ "theme_color": "#03173d",
+ "prefer_related_applications": false,
+ "icons": [
+ {
+ "src": "icon-512.png",
+ "type": "image/png",
+ "sizes": "512x512"
+ }
+ ]
+}
diff --git a/LearningChineseSimplified/wwwroot/sample-data/weather.json b/LearningChineseSimplified/wwwroot/sample-data/weather.json
new file mode 100644
index 0000000..06463c0
--- /dev/null
+++ b/LearningChineseSimplified/wwwroot/sample-data/weather.json
@@ -0,0 +1,27 @@
+[
+ {
+ "date": "2018-05-06",
+ "temperatureC": 1,
+ "summary": "Freezing"
+ },
+ {
+ "date": "2018-05-07",
+ "temperatureC": 14,
+ "summary": "Bracing"
+ },
+ {
+ "date": "2018-05-08",
+ "temperatureC": -13,
+ "summary": "Freezing"
+ },
+ {
+ "date": "2018-05-09",
+ "temperatureC": -16,
+ "summary": "Balmy"
+ },
+ {
+ "date": "2018-05-10",
+ "temperatureC": -2,
+ "summary": "Chilly"
+ }
+]
diff --git a/LearningChineseSimplified/wwwroot/service-worker.js b/LearningChineseSimplified/wwwroot/service-worker.js
new file mode 100644
index 0000000..fe614da
--- /dev/null
+++ b/LearningChineseSimplified/wwwroot/service-worker.js
@@ -0,0 +1,4 @@
+// In development, always fetch from the network and do not enable offline support.
+// This is because caching would make development more difficult (changes would not
+// be reflected on the first load after each change).
+self.addEventListener('fetch', () => { });
diff --git a/LearningChineseSimplified/wwwroot/service-worker.published.js b/LearningChineseSimplified/wwwroot/service-worker.published.js
new file mode 100644
index 0000000..b3e9b20
--- /dev/null
+++ b/LearningChineseSimplified/wwwroot/service-worker.published.js
@@ -0,0 +1,48 @@
+// Caution! Be sure you understand the caveats before publishing an application with
+// offline support. See https://aka.ms/blazor-offline-considerations
+
+self.importScripts('./service-worker-assets.js');
+self.addEventListener('install', event => event.waitUntil(onInstall(event)));
+self.addEventListener('activate', event => event.waitUntil(onActivate(event)));
+self.addEventListener('fetch', event => event.respondWith(onFetch(event)));
+
+const cacheNamePrefix = 'offline-cache-';
+const cacheName = `${cacheNamePrefix}${self.assetsManifest.version}`;
+const offlineAssetsInclude = [/\.dll$/, /\.pdb$/, /\.wasm/, /\.html/, /\.js$/, /\.json$/, /\.css$/, /\.woff$/, /\.png$/, /\.jpe?g$/, /\.gif$/, /\.ico$/, /\.blat$/, /\.dat$/];
+const offlineAssetsExclude = [/^service-worker\.js$/];
+
+async function onInstall(event) {
+ console.info('Service worker: Install');
+
+ // Fetch and cache all matching items from the assets manifest
+ const assetsRequests = self.assetsManifest.assets
+ .filter(asset => offlineAssetsInclude.some(pattern => pattern.test(asset.url)))
+ .filter(asset => !offlineAssetsExclude.some(pattern => pattern.test(asset.url)))
+ .map(asset => new Request(asset.url, { integrity: asset.hash, cache: 'no-cache' }));
+ await caches.open(cacheName).then(cache => cache.addAll(assetsRequests));
+}
+
+async function onActivate(event) {
+ console.info('Service worker: Activate');
+
+ // Delete unused caches
+ const cacheKeys = await caches.keys();
+ await Promise.all(cacheKeys
+ .filter(key => key.startsWith(cacheNamePrefix) && key !== cacheName)
+ .map(key => caches.delete(key)));
+}
+
+async function onFetch(event) {
+ let cachedResponse = null;
+ if (event.request.method === 'GET') {
+ // For all navigation requests, try to serve index.html from cache
+ // If you need some URLs to be server-rendered, edit the following check to exclude those URLs
+ const shouldServeIndexHtml = event.request.mode === 'navigate';
+
+ const request = shouldServeIndexHtml ? 'index.html' : event.request;
+ const cache = await caches.open(cacheName);
+ cachedResponse = await cache.match(request);
+ }
+
+ return cachedResponse || fetch(event.request);
+}