GOOGLE ADS

пятница, 13 мая 2022 г.

Add notification to Windows notification center without displaying it on screen

Я создаю приложение Electron с настраиваемой функцией уведомлений, в которой элементы div html5 появляются и исчезают по мере необходимости в бескаркасном прозрачном окне всегда поверх.

Это прекрасно работает, но: мне по-прежнему нравится сам центр уведомлений Windows, и я хотел бы иметь возможность просматривать там прошлые уведомления, фактически не отображая их на экране с API HTML5.

Я пытался:

  • Поиск в HTML5 API для возможности не показывать уведомление или сразу.hide() его: не повезло. Единственный близкий метод —.close(), и он также удаляет уведомление из центра.

  • Изучая такие пакеты, как node-notifier, ни одна из используемых зависимостей уведомлений не предлагает способ полностью скрыть уведомление.

  • Хотя я упомянул Node, я также приму любой API/привязку более низкого уровня, который позволит мне это сделать.

    Заранее спасибо.


    Решение проблемы

    С помощью @treckstar в комментариях я нашел способ сделать то, что хотел, используя:

  • NodeRT

  • Атрибут ToastNotification.SuppressPopup _

  • Несмотря на несколько проблем со сборкой NodeRT и использованием электронной перестройки, вот работающий PoC:

    const { XmlDocument } = require('@nodert-win10-rs4/windows.data.xml.dom');
    const {
    ToastNotification,
    ToastNotificationManager
    } = require('@nodert-win10-rs4/windows.ui.notifications');
    const localImage = path.join(__dirname, 'icon.png');
    const template = `
    <toast launch="app-defined-string">
    <visual>
    <binding template="ToastGeneric">
    <image id="1" placement="appLogoOverride" hint-crop="circle" src="${localImage}"/>
    </binding>
    </visual>
    </toast>
    `;
    const xml = new XmlDocument();
    xml.loadXml(template);
    const toast = new ToastNotification(xml);
    const notifier = ToastNotificationManager.createToastNotifier("com.myapp.testnotif");
    toast.suppressPopup = true;
    notifier.show(toast);

    Пусть это поможет тому, кто столкнется с той же очень конкретной проблемой.

    Комментариев нет:

    Отправить комментарий

    Laravel Datatable addColumn returns ID of one record only

    Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...