2009-09-18 23 views
19

¿Es posible enviar notificaciones gruñidas a la computadora de un usuario, desde una aplicación web, usando javascript? Esto solo se realizará en una aplicación de intranet, por lo que la seguridad no es una preocupación importante. Además, se limitará solo a usuarios de Mac con Safari o Firefox.¿Cómo enviar mensajes gruñidos reales con javascript?

Gracias.

+19

alerta ('grrrr ..') –

Respuesta

7

Growl tiene network interface, y HTML 5 tiene Web Sockets, por lo que en teoría podría ser posible en su totalidad en JavaScript (cuando se implementan Web Sockets). Más realistamente, si su servidor web está conectado a la misma red que sus clientes (es decir, puede ver y conectarse a sus direcciones IP individuales), puede hacer una devolución de llamada de estilo AJAX a un script en el servidor que hará la solicitud de red.

+1

Su enlace 'interfaz de red' está roto. Además, el protocolo gruñido ha cambiado. Hay un nuevo protocolo de plataforma cruzada llamado GNTP. – Andrew

1

La publicación http://ajaxian.com/archives/growls-for-windows-and-a-web-notification-api contiene un enlace a growl.js que se escribió para trabajar con Growl para Windows. No he investigado lo suficiente como para saber si un enfoque similar funcionaría con Growl.

+0

Esa solución implica tener un servidor local. (Lo cual es factible en ese caso, ya que autor también es un desarrollador de growl-for-windows.) –

3

Fluid, un generador de navegador de sitio específico para Mac, expone una notificación Growl JavaScript API [1]:

window.fluid.showGrowlNotification({ 
    title: "title", 
    description: "description", 
    priority: 1, 
    sticky: false, 
    identifier: "foo", 
    onclick: callbackFunc, 
    icon: imgEl // or URL string 
}) 

fuente pertinente es on the Fluid Developer page.

Puede buscar ejemplos del mundo real en userscripts.org.

Una desventaja de este enfoque es, por supuesto, obligar a los usuarios a usar un navegador Fluid cuando acceden a la aplicación de intranet.

Configurar un puente como Adam sugiere tiene la ventaja de requerir un mínimo esfuerzo por parte de los usuarios.

+0

El fluido es bastante bueno en realidad. Aunque tienes razón. Requiere una acción por parte del usuario, por lo que no es ideal, pero es bueno tener opciones. – Andrew

2

Traté de encontrar una solución para enviar un mensaje growl con javascript, sin suerte, por desgracia. Resumiré mi investigación para referencia futura.

Posibles soluciones investigadas:

  • flash - debido al flash de tener acceso a las conexiones de socket regulares que parecía una buena idea para llegar a un fragmento de flash que expondría algunos API de JavaScript a través de ExternalInterface . El objeto Flash se serviría desde el servidor del sitio web (ubicación remota) y trataría de comunicarse con la interfaz gruñido local, que activaría la verificación del archivo de política entre dominios. Eso implica comunicación que no es entendida (soportada) por el servicio growl por ahora, por lo que la conexión fallaría. Como información adicional: growl para Windows tenía soporte para clientes basados ​​en flash pero a juzgar por este recent discussion está roto en la versión actual).

  • WebSockets - Similar idea basada en flash en, websockets requieren inicial intercambiar par de peticiones http/respuestas antes de la conexión se actualiza a conexión de socket bidireccional regular. Al igual que en el enfoque Flash, eso funcionaría, pero requeriría gruñir para admitir esa comunicación inicial basada en http antes de la conexión del socket. Por ahora, Growl no admite eso, algunos dicen que sí, una vez que la especificación para el gruñido es definitiva.

  • Google Gears - no lo he probado, pero google gears has been discontinued en marzo de 2011, probablemente plantear cuestiones con el apoyo a Firefox en la versión> = 4.

+0

Gracias por el esfuerzo de todos modos. =] Mi mayor pregunta sigue siendo cómo solicitar al cliente gruñido del usuario que acepte notificaciones. Supongo que no puedes usar javascript solo, pero tal vez javascript podría hablar con un servidor, que luego habla con el cliente que usa GNTP. Creo que * si conoce la dirección IP del cliente, puede pedirle al cliente que acepte notificaciones del servidor, pero no sé dónde buscar un ejemplo de eso. La documentación de Growl puede tener algo, pero no sé dónde buscar. – Andrew

+0

Bueno, si no recuerdo mal, se puede enviar una contraseña para autenticarse con gruñido sin que el gruñido lo solicite. Entonces, si está dispuesto y es capaz de usar un servidor separado que tenga acceso a todas las computadoras en su red local (y sepa cómo asociar al usuario de la aplicación web con una dirección IP específica, lo cual debería ser fácil), puede obtener la contraseña del usuario en su aplicación web usando cualquier método que desee (puede ser una forma simple) que se transferiría a su servidor web, que a su vez lo usaría para autenticarse con gruñido y enviar cualquier notificación que desee directamente a la máquina cliente. – WTK

+0

Dos pensamientos más sobre ese tema. Estoy 90% seguro, esa solución con un servidor web separado funcionaría. Del lado del servidor, puede usar una de las bibliotecas disponibles que implementan el protocolo GNTP. Aquí hay una lista http://www.growlforwindows.com/gfw/developers.aspx#integration – WTK

0

Para el cliente sólo métodos, I' he intentado lo siguiente:

Si se utiliza Growl para Windows o Growl versión 1.3+, se puede utilizar el flash binario como se ilustra en this demo page

También hay una extensión de cromo hecha por GfW que utiliza el binario como NPAPI de forma nativa. GrowlChrome
Estos se basan en el protocolo GNTP que fue desarrollado por GfW, y el gruñido originales (para Mac) proyectado lo adoptó desde la versión 1.3

Para la versión 1.2.x, he encontrado otra cromo-extensión que funciona: Twitter Notifier y Growl Notifier para Google Play. Estas extensiones se basan en JSGrowl

Enlaces

0

También puede probar Gritter, "una notificación gruñido similar para jQuery."

0

Otro cartel 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 ejecutándose localmente. Aquí hay una página de prueba para probarlo sin configurar nada: http://www.growlforwindows.com/gfw/examples/js/

Nota: sin embargo, esto solo funciona actualmente en Windows. Como se señaló en un póster anterior, el soporte de la versión Mac para conexiones basadas en Flash actualmente no funciona.

En Windows, también se puede utilizar WebSockets, y aquí es una página de prueba similar: http://www.growlforwindows.com/gfw/examples/websocket/

Tenga en cuenta que esto también no está actualmente implementado en Growl en el Mac, por lo que si se dirigen a los usuarios de Mac (que se suena como si lo fuera), estos probablemente no ayuden. Solo quería señalar que tanto Javascript como WebSockets son posibilidades una vez que la compatibilidad se haya agregado completamente al cliente OSX.

0

Si sus usuarios tienen flash, puede pedir prestado el puente javascript-flash-growl de here. Siempre puede verificar el guión interior del flash con algo como JPEXS.

Personalmente lo he usado con éxito y jQuery para configurar algunas notificaciones personalizadas para mí using mediawiki y uso de tampermonkey/greasemonkey. Los únicos problemas aparecen si el flash está bloqueado/no permitido/no instalado, o si el flash se bloquea.

Cuestiones relacionadas