diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000..14d2a31
Binary files /dev/null and b/favicon.ico differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..122c410
--- /dev/null
+++ b/index.html
@@ -0,0 +1,36 @@
+
音乐解锁 - By IXarea
\ No newline at end of file
diff --git a/manifest.json b/manifest.json
new file mode 100644
index 0000000..c033e0e
--- /dev/null
+++ b/manifest.json
@@ -0,0 +1 @@
+{"name":"音乐解锁 - By IXarea","short_name":"音乐解锁","theme_color":"#4DBA87","icons":[{"src":"./img/icons/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"./img/icons/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"start_url":"./index.html","display":"standalone","background_color":"#000000","description":"在任何设备上解锁已购的加密音乐!支持QQ音乐与网易云音乐!"}
\ No newline at end of file
diff --git a/precache-manifest.1efcc2347b19922371fb9fdea8bbb93f.js b/precache-manifest.1efcc2347b19922371fb9fdea8bbb93f.js
new file mode 100644
index 0000000..7bbf8b6
--- /dev/null
+++ b/precache-manifest.1efcc2347b19922371fb9fdea8bbb93f.js
@@ -0,0 +1,34 @@
+self.__precacheManifest = (self.__precacheManifest || []).concat([
+ {
+ "revision": "b469d9bdd7381ef99944",
+ "url": "css/app.a6b81b55.css"
+ },
+ {
+ "revision": "97571f7412ebe564d1f1",
+ "url": "css/chunk-vendors.d39e9fad.css"
+ },
+ {
+ "revision": "535877f50039c0cb49a6196a5b7517cd",
+ "url": "fonts/element-icons.535877f5.woff"
+ },
+ {
+ "revision": "732389ded34cb9c52dd88271f1345af9",
+ "url": "fonts/element-icons.732389de.ttf"
+ },
+ {
+ "revision": "9e9a91d443c0c7e4bf9d7fea2e623f6b",
+ "url": "index.html"
+ },
+ {
+ "revision": "b469d9bdd7381ef99944",
+ "url": "js/app.db1511bf.js"
+ },
+ {
+ "revision": "97571f7412ebe564d1f1",
+ "url": "js/chunk-vendors.0cd37ec8.js"
+ },
+ {
+ "revision": "28f3e13ec88073aa1b85b7d66358f613",
+ "url": "manifest.json"
+ }
+]);
\ No newline at end of file
diff --git a/service-worker.js b/service-worker.js
new file mode 100644
index 0000000..b668202
--- /dev/null
+++ b/service-worker.js
@@ -0,0 +1,34 @@
+/**
+ * Welcome to your Workbox-powered service worker!
+ *
+ * You'll need to register this file in your web app and you should
+ * disable HTTP caching for this file too.
+ * See https://goo.gl/nhQhGp
+ *
+ * The rest of the code is auto-generated. Please don't update this file
+ * directly; instead, make changes to your Workbox build configuration
+ * and re-run your build process.
+ * See https://goo.gl/2aRDsh
+ */
+
+importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
+
+importScripts(
+ "precache-manifest.1efcc2347b19922371fb9fdea8bbb93f.js"
+);
+
+workbox.core.setCacheNameDetails({prefix: "unlock-music"});
+
+self.addEventListener('message', (event) => {
+ if (event.data && event.data.type === 'SKIP_WAITING') {
+ self.skipWaiting();
+ }
+});
+
+/**
+ * The workboxSW.precacheAndRoute() method efficiently caches and responds to
+ * requests for URLs in the manifest.
+ * See https://goo.gl/S9QRab
+ */
+self.__precacheManifest = [].concat(self.__precacheManifest || []);
+workbox.precaching.precacheAndRoute(self.__precacheManifest, {});