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