feat: add offline
هذا الالتزام موجود في:
14
index.html
14
index.html
@@ -15,7 +15,7 @@
|
|||||||
<meta property="og:url" content="https://qr-generator.muathye.com">
|
<meta property="og:url" content="https://qr-generator.muathye.com">
|
||||||
<meta property="og:image" content="https://qr-generator.muathye.com/icon-512x512.png">
|
<meta property="og:image" content="https://qr-generator.muathye.com/icon-512x512.png">
|
||||||
<title>QR Code Generator - Free QR Code Generator Online</title>
|
<title>QR Code Generator - Free QR Code Generator Online</title>
|
||||||
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
|
<link href="tailwind.min.css" rel="stylesheet">
|
||||||
<link rel="manifest" href="manifest.json">
|
<link rel="manifest" href="manifest.json">
|
||||||
<script type="application/ld+json">
|
<script type="application/ld+json">
|
||||||
{
|
{
|
||||||
@@ -75,6 +75,18 @@
|
|||||||
</div>
|
</div>
|
||||||
<script src="qrcode.min.js"></script>
|
<script src="qrcode.min.js"></script>
|
||||||
<script src="script.js"></script>
|
<script src="script.js"></script>
|
||||||
|
<script>
|
||||||
|
if ('serviceWorker' in navigator) {
|
||||||
|
navigator.serviceWorker.register('/sw.js')
|
||||||
|
.then(registration => {
|
||||||
|
console.log('Service Worker registered with scope:', registration.scope);
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.log('Service Worker registration failed:', error);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
@@ -1,10 +1,11 @@
|
|||||||
{
|
{
|
||||||
"name": "QR Code Generator",
|
"name": "QR Code Generator",
|
||||||
"short_name": "QRGen",
|
"short_name": "QR Code",
|
||||||
"start_url": "/",
|
"description": "Generate QR codes instantly with our free and easy-to-use QR code generator.",
|
||||||
|
"start_url": "./index.html",
|
||||||
"display": "standalone",
|
"display": "standalone",
|
||||||
"background_color": "#ffffff",
|
"background_color": "#ffffff",
|
||||||
"theme_color": "#000000",
|
"theme_color": "#ffc517",
|
||||||
"icons": [
|
"icons": [
|
||||||
{
|
{
|
||||||
"src": "icon-192x192.png",
|
"src": "icon-192x192.png",
|
||||||
|
|||||||
34
sw.js
34
sw.js
@@ -1,23 +1,37 @@
|
|||||||
const CACHE_NAME = 'qr-code-pwa-v1';
|
const CACHE_NAME = 'qr-code-pwa-v1';
|
||||||
const assetsToCache = [
|
const assetsToCache = [
|
||||||
'/',
|
'./',
|
||||||
'/index.html',
|
'./index.html',
|
||||||
'/style.css',
|
'./style.css',
|
||||||
'/script.js',
|
'./script.js',
|
||||||
'https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css',
|
'./tailwind.min.css',
|
||||||
'https://cdnjs.cloudflare.com/ajax/libs/qrcode-generator/1.4.4/qrcode.min.js'
|
'./qrcode.min.js'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
self.addEventListener('install', event => {
|
self.addEventListener('install', event => {
|
||||||
event.waitUntil(
|
event.waitUntil(
|
||||||
caches.open(CACHE_NAME)
|
caches.open(cacheName).then(cache => {
|
||||||
.then(cache => cache.addAll(assetsToCache))
|
cache.addAll(assets);
|
||||||
|
})
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
self.addEventListener('fetch', event => {
|
self.addEventListener('fetch', event => {
|
||||||
event.respondWith(
|
event.respondWith(
|
||||||
caches.match(event.request)
|
caches.match(event.request).then(response => {
|
||||||
.then(response => response || fetch(event.request))
|
return response || fetch(event.request);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
self.addEventListener('activate', event => {
|
||||||
|
event.waitUntil(
|
||||||
|
caches.keys().then(keys => {
|
||||||
|
return Promise.all(
|
||||||
|
keys.filter(key => key !== cacheName)
|
||||||
|
.map(key => caches.delete(key))
|
||||||
|
);
|
||||||
|
})
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
1
tailwind.min.css
مباع
Normal file
1
tailwind.min.css
مباع
Normal file
تم حذف اختلاف الملف لأن أحد الأسطر أو أكثر طويلة جداً
المرجع في مشكلة جديدة
حظر مستخدم