push notification works
Deploy app frontend / app frontend (push) Successful in 1m32s

This commit is contained in:
2024-12-05 21:06:57 +02:00
parent 23aced4071
commit d57e1569b3
8 changed files with 115 additions and 117 deletions
+18 -17
View File
@@ -2,8 +2,8 @@
import { RouterView } from 'vue-router'
import { registerServiceWorker } from '@/registerServiceWorker'
const router = useRouter()
const debugEnabled = ref(import.meta.env.DEV)
// const router = useRouter()
const debugEnabled = ref(false) // import.meta.env.DEV)
const debugItems = ref<string[]>([])
const debug = (...data: unknown[]) => {
if (debugEnabled.value) {
@@ -14,21 +14,21 @@ const debug = (...data: unknown[]) => {
provide('debug', debug)
registerServiceWorker()
.then(() => {
console.log('Service Worker успешно зарегистрирован')
navigator.serviceWorker.addEventListener('message', (event) => {
if (event.data.type === 'debug') {
if ('debug' in event.data && typeof event.data.debug === 'object') {
debug(event.data.debug)
}
} else if (event.data.type === 'notificationClick' && !event.data.matchUrl) {
const url = new URL(event.data.url, location.origin)
console.debug('go to', `${url.pathname}${url.search}${url.hash}`)
router.push(`${url.pathname}${url.search}${url.hash}`)
}
})
})
.catch(console.error)
// .then(() => {
// // console.log('Service Worker успешно зарегистрирован')
// navigator.serviceWorker.addEventListener('message', (event) => {
// if (event.data.type === 'debug') {
// if ('debug' in event.data && typeof event.data.debug === 'object') {
// debug(event.data.debug)
// }
// } else if (event.data.type === 'notificationclick' && !event.data.matchUrl) {
// const url = new URL(event.data.url, location.origin)
// // console.debug('go to', `${url.pathname}${url.search}${url.hash}`)
// router.push(`${url.pathname}${url.search}${url.hash}`)
// }
// })
// })
// .catch(console.error)
</script>
<template>
@@ -43,6 +43,7 @@ registerServiceWorker()
<span class="font-mono text-xs">{{ value }}</span>
</div>
</div>
<RouterView />
</template>
+1 -1
View File
@@ -1,7 +1,7 @@
{
"short_name": "НаСвязи",
"id": "hereconnect",
"start_url": "/manage/dashboard",
"start_url": "/",
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone",
+28 -28
View File
@@ -3,36 +3,36 @@ export async function registerServiceWorker() {
throw new Error('Ваш браузер не поддерживает Service Worker.')
}
function requestDebugVersion() {
navigator.serviceWorker?.controller?.postMessage({
type: 'requestDebugVersion',
})
}
// function requestDebugVersion() {
// navigator.serviceWorker?.controller?.postMessage({
// type: 'requestDebugVersion',
// })
// }
navigator.serviceWorker.addEventListener('controllerchange', () => {
console.log('Service Worker controller has changed.')
requestDebugVersion()
// console.log('Service Worker controller has changed.')
// requestDebugVersion()
})
try {
const registration = await navigator.serviceWorker.register('/service-worker.js')
console.log('Service Worker зарегистрирован:', registration)
requestDebugVersion()
window.addEventListener(
'focus',
() => {
navigator.serviceWorker?.controller?.postMessage({
type: 'focused',
})
},
{},
)
return registration
} catch (error) {
console.error('Ошибка регистрации Service Worker:', error)
throw error
}
// try {
const registration = await navigator.serviceWorker.register('/service-worker.js')
// console.log('Service Worker зарегистрирован:', registration)
//
// requestDebugVersion()
//
// window.addEventListener(
// 'focus',
// () => {
// navigator.serviceWorker?.controller?.postMessage({
// type: 'focused',
// })
// },
// {},
// )
//
return registration
// } catch (error) {
// console.error('Ошибка регистрации Service Worker:', error)
// throw error
// }
}
+8 -7
View File
@@ -1,23 +1,24 @@
import { createRouter, createWebHistory } from 'vue-router'
import { ROUTE_NAMES } from '@/constants/routes'
import HomeView from '@/views/HomeView.vue'
function isRunningStandalone() {
return window.matchMedia('(display-mode: standalone)').matches
}
const routes = [
{
path: '/',
name: ROUTE_NAMES.HOME,
component: HomeView,
component: () =>
isRunningStandalone()
? import('@/views/ManageDashboardView.vue')
: import('@/views/HomeView.vue'),
},
{
path: '/create',
name: ROUTE_NAMES.CREATE,
component: () => import('@/views/CreateView.vue'),
},
{
path: '/app/start',
name: ROUTE_NAMES.APP_START,
component: () => import('@/views/ManageDashboardView.vue'),
},
{
path: '/manage/dashboard',
name: ROUTE_NAMES.MANAGE_DASHBOARD,