add showNativeNotification

matrix-chat-native
adb 4 years ago
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…
Cancel
Save