que - ¿Cómo enviar mensajes de gruñidos reales con javascript?
mandar a llamar un js (9)
¿Es posible publicar notificaciones de gruñidos en la computadora de un usuario, desde una aplicación web, usando javascript? Esto será solo en una aplicación de intranet, por lo que la seguridad no es una preocupación importante. Además, estará limitado solo a usuarios de Mac con Safari o Firefox.
Gracias.
Growl tiene una interfaz de red y HTML 5 tiene Web Sockets , por lo que, en teoría, podría ser completamente posible en JavaScript (cuando se implementa Web Sockets). De manera más realista, si su servidor web está conectado a la misma red que sus clientes (es decir, puede ver y conectarse a sus direcciones IP individuales), podría realizar una devolución de llamada de estilo AJAX a un script en el servidor que realizará la solicitud de red.
La publicación http://ajaxian.com/archives/growls-for-windows-and-a-web-notification-api contiene un enlace a growl.js que fue escrito para funcionar con Growl para Windows. No lo he investigado lo suficiente como para saber si un enfoque similar funcionaría con Growl.
Otro póster lo mencionó, pero definitivamente puede usar Javascript (con una pequeña porción de Flash, pero no tiene que meterse con esa parte) para enviar notificaciones a Growl que se ejecuta localmente. Aquí hay una página de prueba para probarlo sin configurar nada: http://www.growlforwindows.com/gfw/examples/js/
Tenga en cuenta sin embargo, esto solo funciona actualmente en Windows. Como se señaló en un póster anterior, el soporte de la versión de Mac para conexiones basadas en Flash actualmente no funciona
En Windows, también puede usar WebSockets, y aquí hay una página de prueba similar: http://www.growlforwindows.com/gfw/examples/websocket/
Tenga en cuenta que esto tampoco está implementado actualmente en Growl en la Mac, por lo que si está apuntando a usuarios de Mac (que suena como si lo estuviera), esto probablemente no ayude. Solo quería señalar que tanto Javascript como WebSockets son posibilidades una vez que el soporte se haya agregado completamente al cliente OSX.
Para los métodos de solo cliente, he intentado lo siguiente:
Si usa Growl para Windows o Growl versión 1.3+, puede usar el binario de Flash como se ilustra en esta página de demostración.
También hay una extensión de Chrome hecha por GfW que usa el binario como NPAPI de forma nativa. GrowChrome
Estos se basan en el protocolo GNTP que fue desarrollado por GfW, y el Growl original (para Mac) proyectado lo adoptó de la versión 1.3
Para la versión 1.2.x, encontré otra extensión de Chrome que funciona: Twitter Notifier y Growl Notifier para Google Play . Estas extensiones están basadas en JSGrowl
Campo de golf
Si tus usuarios tienen flash, puedes tomar prestado el puente javascript-flash-growl desde http://www.growlforwindows.com/gfw/examples/js/ . Siempre se puede verificar el interior de la secuencia de comandos del flash con algo como JPEXS.
Personalmente lo he usado con éxito y jQuery para configurar algunas notificaciones personalizadas para mí mismo usando mediawiki y utilizando tampermonkey / greasemonkey. Los únicos problemas surgen si el flash está bloqueado / deshabilitado / no está instalado, o cuando el flash falla.
También puedes probar con Gritter , "una notificación similar a un gruñido para jQuery".
Traté de encontrar una solución para enviar un mensaje de gruñido con javascript, sin suerte, lamentablemente. Voy a resumir mi investigación para futuras referencias.
Posibles soluciones investigadas:
Flash : debido a que el flash tiene acceso a conexiones de socket normales, parecía una buena idea crear un fragmento de flash que expusiera algunas API a javascript a través de ExternalInterface. El objeto Flash se enviaría desde el servidor del sitio web (ubicación remota) e intentaría comunicarse con la interfaz de gruñido local, lo que provocaría la verificación del archivo de políticas entre dominios. Eso implica una comunicación que el servicio de gruñidos no entiende (soporta) por ahora, por lo que la conexión fallará. Como información adicional: growl for windows tenía soporte para clientes basados en flash, pero a juzgar por esta reciente discusión, está roto en la versión actual).
WebSockets : similar a la idea basada en flash, los websockets requieren un intercambio inicial de un par de solicitudes / respuestas http antes de que la conexión se actualice a una conexión de socket de dos vías regular. Al igual que en el enfoque de Flash, eso funcionaría, pero requiere un gruñido para admitir esa comunicación inicial basada en http antes de la conexión de socket. Growl no admite eso por ahora, algunos dicen que podría hacerlo, una vez que la especificación para gruñir sea definitiva.
Google Gears : no lo he probado, pero Google Gears se ha suspendido a partir de marzo de 2011, probablemente generando problemas con la compatibilidad con Firefox en la versión> = 4.
Google Gears tiene un soporte experimental para notificaciones Growl.
Fluid , un generador de navegador específico para el sitio para Mac, expone una API de notificación Growl de JavaScript [ 1 ]:
window.fluid.showGrowlNotification({
title: "title",
description: "description",
priority: 1,
sticky: false,
identifier: "foo",
onclick: callbackFunc,
icon: imgEl // or URL string
})
La fuente relevante está 1 .
Puede buscar ejemplos del mundo real en userscripts.org .
Un inconveniente de este enfoque es, por supuesto, que debe obligar a sus usuarios a usar un navegador Fluid cuando accedan a la aplicación de intranet.
Configurar un puente como sugiere Adam tiene la ventaja de requerir un esfuerzo mínimo por parte de los usuarios.