add showNativeNotification
This commit is contained in:
		
							parent
							
								
									550d79af28
								
							
						
					
					
						commit
						2c22cae07f
					
				| @ -4,7 +4,7 @@ | |||||||
|   "bundledWebRuntime": false, |   "bundledWebRuntime": false, | ||||||
|   "npmClient": "npm", |   "npmClient": "npm", | ||||||
|   "webDir": "./dist", |   "webDir": "./dist", | ||||||
|   "linuxAndroidStudioPath": "~/.local/share/JetBrains/Toolbox/apps/AndroidStudio/ch-0/201.7199119/bin/studio.sh", |   "linuxAndroidStudioPath": "/home/alban/.local/share/JetBrains/Toolbox/apps/AndroidStudio/ch-0/201.7199119/bin/studio.sh", | ||||||
|   "plugins": { |   "plugins": { | ||||||
|     "SplashScreen": { |     "SplashScreen": { | ||||||
|       "launchShowDuration": 0 |       "launchShowDuration": 0 | ||||||
|  | |||||||
| @ -2,6 +2,8 @@ import {getMxcFromUserId, getAvatarUrl} from '@/lib/getMxc'; | |||||||
| import {calcUserName} from '@/lib/matrixUtils'; | import {calcUserName} from '@/lib/matrixUtils'; | ||||||
| import {getRoom} from '@/lib/matrixUtils'; | import {getRoom} from '@/lib/matrixUtils'; | ||||||
| import {router} from '@/router'; | import {router} from '@/router'; | ||||||
|  | import {Capacitor, Plugins} from '@capacitor/core'; | ||||||
|  | const {LocalNotifications} = Plugins; | ||||||
| 
 | 
 | ||||||
| export class NotificationHandler{ | export class NotificationHandler{ | ||||||
|   constructor() { |   constructor() { | ||||||
| @ -17,6 +19,7 @@ export class NotificationHandler{ | |||||||
|       .then(permission => {return permission === 'granted'}); |       .then(permission => {return permission === 'granted'}); | ||||||
|   } |   } | ||||||
|   showNotification(event){ |   showNotification(event){ | ||||||
|  |     if (Capacitor.isNative) return this.showNativeNotification(event); | ||||||
|     if (Notification.permission !== 'granted') return false; |     if (Notification.permission !== 'granted') return false; | ||||||
|     console.log(event); |     console.log(event); | ||||||
|     let mxc = getMxcFromUserId(event.sender); |     let mxc = getMxcFromUserId(event.sender); | ||||||
| @ -25,4 +28,20 @@ export class NotificationHandler{ | |||||||
|       icon: mxc?getAvatarUrl(mxc):undefined |       icon: mxc?getAvatarUrl(mxc):undefined | ||||||
|     }).onclick = ()=>router.push(`/rooms/${event.room_id}`); |     }).onclick = ()=>router.push(`/rooms/${event.room_id}`); | ||||||
|   } |   } | ||||||
|  |   showNativeNotification(event){ | ||||||
|  |     LocalNotifications.schedule({ | ||||||
|  |       notifications: [ | ||||||
|  |         { | ||||||
|  |           title: `${calcUserName(event.sender)} in ${getRoom(event.room_id).name}`, | ||||||
|  |           body: event.content.body, | ||||||
|  |           id: 1, | ||||||
|  |           schedule: { at: new Date(Date.now() + 1000 * 5) }, | ||||||
|  |           sound: null, | ||||||
|  |           attachments: null, | ||||||
|  |           actionTypeId: '', | ||||||
|  |           extra: null | ||||||
|  |         } | ||||||
|  |       ] | ||||||
|  |     }); | ||||||
|  |   } | ||||||
| } | } | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user