Я создаю приложение для обмена сообщениями, используя электрон. Я могу ответить из уведомления, но не нашел источников, чтобы сделать уведомление прочитанным.
Я использую значение по умолчанию Notification API
, предоставляемое электроном, но у него просто есть параметр hasReply
, а не hasRead
. Я также пытался использовать node-mac-notifier
, который обеспечивает ту же функциональность.
Ссылка только на полезную часть кода:
const notifications = new Map();
ipcMain.on(
'notification',
(_event: ElectronEvent, {id, title, body, icon, silent}: NotificationEvent) => {
const notification = new Notification({
title,
body: config.get('notificationMessagePreview') ? body : `You have a new message`,
hasReply: true,
icon: nativeImage.createFromDataURL(icon),
silent
});
notifications.set(id, notification);
notification.on('click', () => {
sendAction('notification-callback', {callbackName: 'onclick', id});
notifications.delete(id);
});
notification.on('reply', (_event, reply: string) => {
// We use onclick event used by messenger to go to the right convo
sendBackgroundAction('notification-reply-callback', {callbackName: 'onclick', id, reply});
notifications.delete(id);
});
notification.on('close', () => {
sendBackgroundAction('notification-callback', {callbackName: 'onclose', id});
notifications.delete(id);
});
notification.show();
}
);
Предполагается найти способ пометить сообщение как прочитанное, учитываяуведомление. Оценивается при использовании API уведомлений по умолчанию (хотя и не обязательно)