custom service-worker

dev/chat
Lei OT 2 years ago
parent 2650ed63c6
commit e7c7d7b1be

@ -0,0 +1,28 @@
function openWebSocket() {
console.log('open websocket');
}
self.addEventListener('install', function(event) {
self.skipWaiting();
console.log('Installed', event);
});
self.addEventListener('activate', (event) => {
event.waitUntil(openWebSocket());
});
self.addEventListener('push', (event) => {
const data = event.data.json();
const title = data.title || 'New Message';
const options = {
body: data.body || 'You have a new message',
icon: 'path/to/icon.png',
badge: 'path/to/badge.png',
vibrate: [200, 100, 200],
// Other notification options
};
event.waitUntil(
self.registration.showNotification(title, options)
);
});

@ -74,3 +74,30 @@ ReactDOM.createRoot(document.getElementById('root')).render(
</ThemeContext.Provider>
// </React.StrictMode>
);
if ('serviceWorker' in navigator) {
const wb = import.meta.env.VITE_SERVICE_WORKER_ENTRY;
console.log('if service worker', wb);
window.addEventListener('load', () => {
console.log('listen load');
navigator.serviceWorker.register('/service-worker.js').then(
(registration) => {
console.log('Service Worker registered:', registration);
},
(error) => {
console.error('Service Worker registration failed:', error);
}, () => {
console.log('final');
}
);
// navigator.serviceWorker.register(wb).then(
// (registration) => {
// console.log('vite-plugin-pwa Service Worker registered:', registration);
// },
// (error) => {
// console.error('vite-plugin-pwa Service Worker registration failed:', error);
// }
// );
});
}

@ -13,9 +13,10 @@ const buildDatePlugin = () => {
};
// PWA plugin
const manifestForPlugIn = {
registerType: 'prompt',
// includeAssests: ['/src/assets/logo-gh.png'],
// registerType: 'prompt',
// registerType: 'autoUpdate',
registerType: 'none',
// includeAssests: ['/src/assets/logo-gh.png'],
workbox: {
globPatterns: ['**/*.{js,css,html,ico,png,svg,woff2}'],
},
@ -55,7 +56,7 @@ const manifestForPlugIn = {
};
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react(), WindiCSS(), buildDatePlugin(), VitePWA(manifestForPlugIn)],
plugins: [react(), WindiCSS(), buildDatePlugin(), ],
server: {
host: '0.0.0.0',
},

Loading…
Cancel
Save