Fix PWA installability
diff --git a/manifest.json b/manifest.json
index 68259c6..16364dd 100644
--- a/manifest.json
+++ b/manifest.json
@@ -9,48 +9,66 @@
"background_color": "#ffffff",
"icons": [
{
- "src": "./media/manifest/icon-192x192.png",
+ "src": "./media/manifest/icon-192x192-regular.png",
"sizes": "192x192",
"type": "image/png",
- "purpose": "any maskable"
+ "purpose": "any"
},
{
- "src": "./media/manifest/icon-512x512.png",
+ "src": "./media/manifest/icon-192x192-maskable.png",
+ "sizes": "192x192",
+ "type": "image/png",
+ "purpose": "maskable"
+ },
+ {
+ "src": "./media/manifest/icon-512x512-regular.png",
"sizes": "512x512",
"type": "image/png",
- "purpose": "any maskable"
+ "purpose": "any"
+ },
+ {
+ "src": "./media/manifest/icon-512x512-maskable.png",
+ "sizes": "512x512",
+ "type": "image/png",
+ "purpose": "maskable"
}
],
"screenshots": [
{
"src": "./media/manifest/screenshot-1.png",
"type": "image/png",
- "sizes": "1080x1920"
+ "sizes": "1080x1920",
+ "form_factor": "narrow"
},
{
"src": "./media/manifest/screenshot-2.png",
"type": "image/png",
- "sizes": "1080x1920"
+ "sizes": "1080x1920",
+ "form_factor": "narrow"
},
{
"src": "./media/manifest/screenshot-3.png",
"type": "image/png",
- "sizes": "1080x1920"
+ "sizes": "1080x1920",
+ "form_factor": "narrow"
},
{
"src": "./media/manifest/screenshot-4.png",
"type": "image/png",
- "sizes": "1920x1080"
+ "sizes": "1920x1080",
+ "form_factor": "wide"
},
{
"src": "./media/manifest/screenshot-5.png",
"type": "image/png",
- "sizes": "1920x1080"
+ "sizes": "1920x1080",
+ "form_factor": "wide"
},
{
"src": "./media/manifest/screenshot-6.png",
"type": "image/png",
- "sizes": "1920x1080"
+ "sizes": "1920x1080",
+ "form_factor": "wide"
}
],
"prefer_related_applications": false,
diff --git a/media/manifest/icon-192x192-maskable.png b/media/manifest/icon-192x192-maskable.png
new file mode 100644
index 0000000..b58c256
--- /dev/null
+++ b/media/manifest/icon-192x192-maskable.png
Binary files differ
diff --git a/media/manifest/icon-192x192-regular.png b/media/manifest/icon-192x192-regular.png
new file mode 100644
index 0000000..ec5a82e
--- /dev/null
+++ b/media/manifest/icon-192x192-regular.png
Binary files differ
diff --git a/media/manifest/icon-192x192.png b/media/manifest/icon-192x192.png
deleted file mode 100644
index 5520213..0000000
--- a/media/manifest/icon-192x192.png
+++ /dev/null
Binary files differ
diff --git a/media/manifest/icon-512x512-maskable.png b/media/manifest/icon-512x512-maskable.png
new file mode 100644
index 0000000..6437af9
--- /dev/null
+++ b/media/manifest/icon-512x512-maskable.png
Binary files differ
diff --git a/media/manifest/icon-512x512-regular.png b/media/manifest/icon-512x512-regular.png
new file mode 100644
index 0000000..3eef1c6
--- /dev/null
+++ b/media/manifest/icon-512x512-regular.png
Binary files differ
diff --git a/media/manifest/icon-512x512.png b/media/manifest/icon-512x512.png
deleted file mode 100644
index df39ee5..0000000
--- a/media/manifest/icon-512x512.png
+++ /dev/null
Binary files differ
diff --git a/service-worker.js b/service-worker.js
index a33f80d..f483bc0 100644
--- a/service-worker.js
+++ b/service-worker.js
@@ -1,7 +1,3 @@
-self.addEventListener('fetch', () => {
- // Empty fetch event handler to bypass PWA installability criteria (https://web.dev/install-criteria/#criteria).
-});
-
self.addEventListener('notificationclick', (event) => {
event.notification.close();
diff --git a/tests/permission-request.html b/tests/permission-request.html
index 11b2087..dffbd3e 100644
--- a/tests/permission-request.html
+++ b/tests/permission-request.html
@@ -61,15 +61,14 @@
let serviceWorkerRegistration;
if ('serviceWorker' in navigator) {
- window.addEventListener('load', () => {
- navigator.serviceWorker.register('../service-worker.js')
- .then(registration => {
- console.log('Service worker registered successfully', registration);
- serviceWorkerRegistration = registration;
- })
- .catch(error => {
- console.error('Something went wrong while registering service worker', error);
- });
+ window.addEventListener('load', async () => {
+ try {
+ const registration = await navigator.serviceWorker.register('../service-worker.js');
+ console.log('Service worker registered successfully', registration);
+ serviceWorkerRegistration = registration;
+ } catch (error) {
+ console.error('Something went wrong while registering service worker', error);
+ }
});
}
@@ -81,57 +80,56 @@
url: 'https://google.com',
},
image: '../media/manifest/screenshot-4.png',
- icon: '../media/manifest/icon-192x192.png',
- badge: '../media/manifest/icon-192x192.png',
+ icon: '../media/manifest/icon-192x192-regular.png',
+ badge: '../media/manifest/icon-192x192-regular.png',
requireInteraction: false,
actions: [
{
action: 'reply',
type: 'text',
title: 'One (Reply)',
- icon: '../media/manifest/icon-192x192.png',
+ icon: '../media/manifest/icon-192x192-regular.png',
placeholder: 'Reply placeholder',
},
{
action: 'two',
type: 'button',
title: 'Two',
- icon: '../media/manifest/icon-192x192.png',
+ icon: '../media/manifest/icon-192x192-regular.png',
},
{
action: 'three',
type: 'button',
title: 'Three',
- icon: '../media/manifest/icon-192x192.png',
+ icon: '../media/manifest/icon-192x192-regular.png',
},
{
action: 'four',
type: 'button',
title: 'Four',
- icon: '../media/manifest/icon-192x192.png',
+ icon: '../media/manifest/icon-192x192-regular.png',
},
{
action: 'five',
type: 'button',
title: 'Five',
- icon: '../media/manifest/icon-192x192.png',
+ icon: '../media/manifest/icon-192x192-regular.png',
},
],
};
const showNotification = () => serviceWorkerRegistration?.showNotification?.(title, options);
- let deferredPrompt;
+ let deferredInstallEvent;
window.addEventListener('beforeinstallprompt', (event) => {
event.preventDefault();
- deferredPrompt = event;
+ deferredInstallEvent = event;
addPermissionButton('../media/textures/install-pwa-button.png', installPWA, 0, 1.54);
});
const installPWA = async (success, _) => {
- deferredPrompt?.prompt();
- const { outcome } = await deferredPrompt?.userChoice;
+ const { outcome } = await deferredInstallEvent?.prompt();
if (outcome === 'accepted') {
success();
}