Greasemonkey: Agregar API GM_notification

Creado en 20 sept. 2010  ·  26Comentarios  ·  Fuente: greasemonkey/greasemonkey

Como autor de un script de usuario, me encantaría poder enviar notificaciones en las que se pueda hacer clic a mis usuarios en lugar de alertar sobre las ventanas de confirmación en muchas situaciones.

Comentario más útil

Todos 26 comentarios

usando el parche del n. ° 1193 esto es pan comido, aunque la parte en la que se puede hacer clic es un poco más de trabajo.

nota: @icon de # 1096 podría usarse para el icono de la notificación.

Sería bueno tenerlo fuera del DOM sin privilegios a veces ... pero el consenso sobre qué tipo de notificación puede ser un problema.

La frase "enviar notificaciones" es extremadamente vaga.

Suponiendo que pretenda que esto signifique "proporcionar una interfaz para nsIAlertsService ", tendría que pensar un poco antes de poder

Creo que mi reacción instintiva sería que esto debería ser un coloque en el DOM de _ esa_ página, de lo contrario, ¿cómo se supone que el usuario debe saber de qué página proviene el mensaje (especialmente cuando podría haber múltiples pestañas apropiadas abiertas) ?

Suponiendo que quiere que esto signifique "proporcionar una interfaz para nsIAlertsService"

Sí, esto usaría lo que implementé en el n. ° 1193

el brindis ha desaparecido casi antes de que haya tenido tiempo de dejar lo que estoy haciendo, leer el recuadro y averiguar lo que dice.

Bueno, los amo, y creo que es mejor que el autor de un script de usuario decida si es útil para su script o no. Además, creo que el tiempo que aparecen es una configuración personalizable, al menos con osx, sé que es.

Creo que mi reacción instintiva sería que este debería ser un coloque en el DOM de esa página,

Cómo se haría eso..?

¿Cómo se supone que el usuario debe saber de qué página proviene el mensaje (especialmente cuando podría haber varias pestañas apropiadas abiertas)?

el título puede ser el nombre del script de usuario y el ícono puede ser @icon.

Parecen ser extremadamente breves y difíciles de interactuar. Casi cada vez que (por ejemplo) Firefox o Thunderbird me dicen que hay una actualización o un mensaje nuevo, el brindis ha desaparecido casi antes de que haya tenido tiempo de detener lo que estoy haciendo, leer el cuadro y averiguar lo que dice.

alert.totalOpenTime es la configuración que desea cambiar, el valor predeterminado es 4 segundos, por lo general me gustan 30 segundos.

¿Estaría dispuesto a agregar compatibilidad con imágenes personalizadas?

function GM_notification (aMsg, aTitle, aImg) {
 var title = aTitle? "" + aTitle: "Greasemonkey";
 var message = aMsg? "" + aMsg: "";
 var image = aImg? "" + aImg: "chrome: //greasemonkey/skin/icon_medium.png";
 tratar {
 alertServ.showAlertNotification (
 imagen,
 título, mensaje, falso, "", nulo);
 // Esto se ve mejor en ubuntu que en windows (http://i55.tinypic.com/2jfwtg9.png)
 } captura (e) {
 // En caso de que, por ejemplo, Growl no esté instalado en una Mac.
 alerta (título + "\ n" + mensaje);
 }
 };

Engañado por # 1271

la votación no se fijará en esto

la votación no se arreglará para esto

¿Por qué?

arantius escribió :
El caso es que la función que reemplazó dependía de la barra de estado, que desaparecerá en Firefox 4. Actualmente, no es más que eso.

Esta característica sería útil para los scripts que redirigen el DOM varias veces y eventualmente aterrizan en una imagen en lugar de un htm / ly aún permiten notificaciones al usuario final de que se ha producido cierto detalle. Como todos sabemos, user.js solo funciona en archivos .htm / l, no en imágenes.

Votar +1 para exponer la función API al sandbox ya que es muy sencillo de hacer con beneficios adicionales.

EDITAR: Para abordar la solicitud de GM-Script-Writer-62850, el valor en @icon podría usarse fácilmente junto con esto.

Firefox 22 tiene soporte para notificaciones web: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/22

+1

Firefox 22 tiene soporte para notificaciones web: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/22

Pero creo que tiene un gran error (https://bugzilla.mozilla.org/show_bug.cgi?id=875114, respectivamente https://bugzilla.mozilla.org/show_bug.cgi?id=862395). Entonces puedo cerrar: https://github.com/greasemonkey/greasemonkey/issues/1742

En algunos casos de uso, es posible que podamos usar notificaciones web en su lugar, que se pueden agregar a Firefox usando varios complementos como el notificador de pestañas .

En algunos casos de uso, es posible que podamos usar notificaciones web en su lugar, que se pueden agregar a Firefox usando varios complementos como el notificador de pestañas.

Pero al usar la API de notificaciones web, el script solo puede mostrar notificaciones emergentes si el usuario permite que el sitio lo haga. El usuario no tiene la opción de deshabilitar las notificaciones del sitio web, sino habilitarlo desde el script.

Bien, extrañé totalmente ese aspecto. : +1:
Una solución alternativa podría ser usar una contraseña secreta y configurar el notificador de pestañas para que solo muestre notificaciones que lo incluyan. Dependiendo de la maldad del sitio, un solo carácter extraño Unicode podría ser suficiente, incluso podría ser uno invisible.

Nuevamente, esta API es necesaria ya que el sitio web comienza a mostrar notificaciones de qué usuario desea bloquearlas. Pero también necesito mostrar notificaciones. Como resultado, el usuario no puede elegir entre deshabilitar todas estas notificaciones o habilitarlas todas. Necesito esta API para que el usuario solo permita notificaciones del script de usuario.

La rama de pruebas:
https://github.com/janekptacijarabaci/greasemonkey/tree/_testBranch_GM_notification

Sincronizar API con Tampermonkey
Consulte también https://tampermonkey.net/documentation.php#GM_notification

¡Esto es solo una cosa para probar!

Utiliza la función " PopupNotifications " (! = "Web (HTML5) Notification API")!
(No necesito esta función, por ahora esperaré para resolver este problema: error 862395 )

@janekptacijarabaci Gracias, pero encontré que tiene errores ...

  1. PopupNotifications.jsm no es una notificación de escritorio: la notificación no se mostrará si la ventana del navegador está minimizada. (Sí, esto es muy importante, de lo contrario se vuelve mucho más inútil)
  2. onclick y ondone deberían ser opcionales, pero actualmente fallará sin estos valores

(No estoy seguro de cuándo se solucionará el error 862395. Pero creo que es mejor tener uno con errores pero utilizable que nada).

Rama de prueba actualizada:
Notificaciones emergentes => Notificación de escritorio

@janekptacijarabaci
Gracias.

Según tengo entendido, la implementación actual en la rama de prueba solo permite la notificación cuando el usuario otorga permiso al sitio para hacerlo. Es como llamar directamente a Notification . El usuario aún no tiene la opción de deshabilitar la notificación desde el sitio, pero permitirla a la secuencia de comandos de usuario.

No estoy seguro de qué consideras que debería ser esta api. Pero espero que este funcione con un control de permisos diferente al de los scripts de contenido del sitio web. (Y eso es lo que hace actualmente TM. Siempre permiten que el script de usuario muestre notificaciones)

@tiansh

La pregunta es como hacerlo...

La notificación de escritorio en Chrome (Tampermonkey) es diferente:
https://developer.chrome.com/extensions/desktop_notifications

Se debe otorgar permiso al director del sistema (con privilegios de Chrome). Pero...
Usando el paso de mensajes (especialmente bajo e10s) - mata todos los eventos (onclick, ondone).
Esta función se puede utilizar de la siguiente manera:
https://github.com/greasemonkey/greasemonkey/blob/3.9/modules/sandbox.js#L75
(https://github.com/greasemonkey/greasemonkey/blob/3.9/modules/menucommand.js#L90)
pero se lo dejo a la comunidad / arantius (no estoy seguro de cómo hacerlo mejor).
(No sé si alguien quiere hacer esto: # 2275 - http://arewewebextensionsyet.com/#notifications)

No tengo una mejor idea ahora ...

Sin embargo, he hecho algún intento ...

Editado:
Pero ... Ejecutar GM_notification () dos veces (y más) seguidas no me funciona.

Consulte también el error 1263155 ( 1294332 , 1306822 ) ...

Entonces ... ¿Se implementó o no?

@VBelozyorov , no creo que se haya implementado para 3.x. Pero para 4.x # 2590

¿Fue útil esta página
0 / 5 - 0 calificaciones