Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

257
Views
Agregar notificación al centro de notificaciones de Windows sin mostrarlo en la pantalla

Estoy creando una aplicación Electron con una función de notificación personalizada en la que los divs html5 aparecen y desaparecen según sea necesario en una ventana transparente, sin marco y siempre visible.

Funciona muy bien, pero todavía me gusta el centro de notificaciones de Windows y me gustaría tener la opción de ver las notificaciones anteriores allí, sin mostrarlas en la pantalla con la API de HTML5.

Yo he tratado:

  • Buscando en la API de HTML5 una opción para no mostrar una notificación, o para ocultarla () de inmediato: no hubo suerte. El único método que se acerca es .close(), y también elimina la notificación del centro.
  • Mirando paquetes como node-notifier , pero ninguna de las dependencias de notificación utilizadas ofrece una forma de ocultar completamente una notificación.

Si bien mencioné Node, también aceptaré cualquier enlace/API de nivel inferior que me permita hacer esto.

Gracias por adelantado.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Con la ayuda de @treckstar en los comentarios, encontré una manera de hacer lo que quería usando:

  • NodoRT
  • El atributo ToastNotification.SuppressPopup

A pesar de algunos problemas para construir NodeRT y usar la reconstrucción de electrones, aquí hay un PoC funcional:

 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);

Que esto ayude a cualquiera que se encuentre con el mismo problema altamente específico.

over 4 years ago · Santiago Trujillo Report

0

Además de lo que muestra @MadWard en la PoC, la tecla suppressPopup es realmente el actor principal de la solución.

Mientras revisaba toneladas de ejemplos y código de electrones, seguí enfrentándome a obstáculos debido a versiones aleatorias de SDK y bibliotecas de cosas que había instalado. Por ejemplo, el paquete electron-windows-notifications , que usa NodeRT, no pudo cargar mi preload.js porque el SDK de Windows 10 que había instalado (compilación 15063) necesitaba nodert-win10-cu en lugar de lo que se usaba en la mayoría de las soluciones por predeterminado nodert-wind10-au .

SDK Conocido como Versión de Windows Alcance npm
Windows 10, compilación 17134 Actualización de abril de 2018 (Redstone 4) 1803 npmjs.com/org/nodert-win10-rs4
Windows 10, compilación 16299 Actualización de Fall Creators (Redstone 3) 1709 npmjs.com/org/nodert-win10-rs3
Windows 10, compilación 15063 Actualización de creadores (Redstone 2) 1703 npmjs.com/org/nodert-win10-cu
Windows 10, compilación 14393 Actualización de aniversario (Redstone 1) 1607 npmjs.com/org/nodert-win10-au
Windows 10, compilación 10586 Umbral 2 1511 npmjs.com/~nodert-win10

EDITAR: Olvidé incluir los pasos más específicos que tomé para obtener archivos de dependencia electron-windows-notifications en este problema de GitHub aquí. Básicamente todo, desde Python , node-gyp gyp roto y archivos .winmd faltantes.

Por último, Electron 14+ y NodeRT tienen un problema en el que deberá asegurarse de tener app.allowRendererProcessReuse = false y, como dice el archivo Léame, para asegurarse de que se esté ejecutando en el archivo main.js

Espero que esto ayude a alguien en el camino, ya que nunca antes había usado Electron hasta hoy y había aprendido mucho gracias a la ayuda de otras personas.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!