Greasemonkey: GM_notification-API hinzufügen

Erstellt am 20. Sept. 2010  ·  26Kommentare  ·  Quelle: greasemonkey/greasemonkey

Als Autor von Benutzerskripten würde ich in vielen Situationen gerne anklickbare Benachrichtigungen an meine Benutzer senden können, anstatt in Bestätigungsfenstern zu alarmieren.

Hilfreichster Kommentar

Zu Ihrer Information...
BEHOBEN FEST
https://bugzilla.mozilla.org/show_bug.cgi?id=862395

Alle 26 Kommentare

Mit dem Patch von #1193 ist dies ein Kinderspiel, der anklickbare Teil ist jedoch ein wenig Mehrarbeit.

Hinweis: @icon aus #1096 könnte für das Icon der Benachrichtigung verwendet werden.

Wäre schön, es manchmal außerhalb des unprivilegierten DOM zu haben ... aber Konsens darüber, welche Art von Benachrichtigung ein Problem sein könnte.

Der Begriff "Benachrichtigungen senden" ist äußerst vage.

Angenommen, Sie beabsichtigen damit "eine Schnittstelle zu nsIAlertsService bereitzustellen " müsste ich eine Weile

Ich denke, meine Bauchreaktion wäre, dass dies ein

Angenommen, Sie beabsichtigen, dass dies "eine Schnittstelle zu nsIAlertsService bereitstellen" bedeutet.

Ja, das würde das verwenden, was ich in #1193 implementiert habe

der Toast ist fast verschwunden, bevor ich Zeit hatte, mit dem, was ich tue, aufzuhören, die Schachtel zu lesen und herauszufinden, was darin steht.

Nun, ich liebe sie, und ich denke, es ist besser für einen Benutzerskript-Autor zu entscheiden, ob es für sein Skript nützlich ist oder nicht. Außerdem denke ich, wie lange sie erscheinen, ist eine anpassbare Einstellung, zumindest mit OSX weiß ich es.

Ich denke, meine Bauchreaktion wäre, dass dies ein einfügt.

wie würde das gehen..?

Wie soll der Benutzer wissen, von welcher Seite die Nachricht kommt (insbesondere wenn mehrere entsprechende Registerkarten geöffnet sein könnten)?

Der Titel kann der Name des Benutzerskripts sein und das Symbol könnte @icon sein.

Sie erscheinen extrem kurz und schwer zu interagieren. Fast jedes Mal, wenn (zB) Firefox oder Thunderbird mir mitteilen, dass es ein Update oder eine neue Nachricht gibt, ist der Toast verschwunden, fast bevor ich Zeit hatte, mit meiner Arbeit aufzuhören, den Kasten zu lesen und herauszufinden, was er sagt.

alerts.totalOpenTime ist die Einstellung, die Sie ändern möchten, der Standardwert ist 4 Sekunden, normalerweise mag ich 30 Sekunden.

Wären Sie bereit, benutzerdefinierte Bildunterstützung hinzuzufügen?

Funktion GM_notification(aMsg, aTitle, aImg) {
 var title = aTitle ? "" + aTitel: "Greasemonkey";
 var-Nachricht = aMsg ? "" + Nachricht: "";
 var image = aImg ? "" + aImg : "chrome://greasemonkey/skin/icon_medium.png";
 Versuchen {
 alertsServ.showAlertNotification(
 Bild,
 Titel, Nachricht, false, "", null);
 //Das sieht auf Ubuntu besser aus als unter Windows ( http://i55.tinypic.com/2jfwtg9.png )
 } fangen (e) {
 // Falls zB Growl nicht auf einem Mac installiert ist.
 alert(Titel + "\n" + Nachricht);
 }
 };

Betrogen von #1271

Abstimmung wird das nicht beheben

Abstimmung wird dafür nicht behoben

Wieso den?

arantius schrieb :
Der Punkt ist, dass die ersetzte Funktion von der Statusleiste abhing, die in Firefox 4 verschwindet. Derzeit ist es nicht mehr als das.

Diese Funktion wäre hilfreich für Skripte, die das DOM mehrmals umleiten und schließlich auf einem Bild anstelle einer htm/l landen und dennoch Benachrichtigungen an den Endbenutzer zulassen, dass ein bestimmtes Detail aufgetreten ist. Wie wir alle wissen, funktioniert user.js nur mit .htm/l-Dateien, nicht mit Bildern.

Stimmen Sie mit +1 , um die API-Funktion den sandbox zur Verfügung zu stellen, da dies mit zusätzlichen Vorteilen sehr einfach ist.

EDIT: Um die Anfrage von GM-Script-Writer-62850 zu beantworten, könnte der Wert bei @icon leicht in Verbindung damit verwendet werden.

Firefox 22 unterstützt Web-Benachrichtigungen: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/22

+1

Firefox 22 unterstützt Web-Benachrichtigungen: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/22

Aber ich denke, es hat einen großen Fehler (https://bugzilla.mozilla.org/show_bug.cgi?id=875114 bzw. https://bugzilla.mozilla.org/show_bug.cgi?id=862395). Dann kann ich schließen: https://github.com/greasemonkey/greasemonkey/issues/1742

In einigen Anwendungsfällen können wir stattdessen Webbenachrichtigungen verwenden, die mit verschiedenen Add-Ons wie Tab Notifier zu Firefox hinzugefügt werden können.

In einigen Anwendungsfällen können wir stattdessen Webbenachrichtigungen verwenden, die mit verschiedenen Add-Ons wie Tab Notifier zu Firefox hinzugefügt werden können.

Durch die Verwendung der Web-Benachrichtigungs-API kann das Skript jedoch nur Benachrichtigungen anzeigen, wenn der Benutzer dies der Site zulässt. Der Benutzer hat keine Wahl, Benachrichtigungen von der Website zu deaktivieren, sondern sie über das Skript zu aktivieren.

Stimmt, diesen Aspekt habe ich total übersehen. :+1:
Ein Workaround könnte darin bestehen, ein geheimes Passwort zu verwenden und den Tab-Notifier so zu konfigurieren, dass nur Benachrichtigungen angezeigt werden, die dieses enthalten. Abhängig von der Bösartigkeit der Site kann ein einziges seltsames Unicode-Zeichen ausreichen, sogar unsichtbar sein.

Auch diese API wird benötigt, da die Website beginnt, Benachrichtigungen anzuzeigen, welche Benutzer sie blockieren möchten. Aber ich muss auch Benachrichtigungen anzeigen. Infolgedessen hat der Benutzer keine Wahl, ob Sie alle diese Benachrichtigungen deaktivieren oder alle aktivieren möchten. Ich benötige diese API, damit Benutzer nur Benachrichtigungen vom Userscript zulassen können.

Die Testabteilung:
https://github.com/janekptacijarabaci/greasemonkey/tree/_testBranch_GM_notification

API mit Tampermonkey synchronisieren
Siehe auch https://tampermonkey.net/documentation.php#GM_notification

Dies ist nur eine Sache zum Testen!

Verwendet die Funktion " PopupNotifications " (!= "Web (HTML5) Notification API")!
(Ich brauche diese Funktion nicht - jetzt warte ich, um dieses Problem zu lösen: Fehler 862395 )

@janekptacijarabaci Danke, aber ich fand es

  1. PopupNotifications.jsm ist keine Desktop-Benachrichtigung: Die Benachrichtigung wird nicht angezeigt, wenn das Browserfenster minimiert ist. (Ja, das ist sehr wichtig, sonst wird es viel nutzloser)
  2. onclick und ondone sollten optional sein, aber derzeit schlägt es ohne diese Werte fehl

(Ich bin mir nicht sicher, wann Fehler 862395 behoben wird. Aber ich denke, es ist besser, einen fehlerhaften, aber brauchbaren zu haben als nichts.)

Testzweig aktualisiert:
Popup-Benachrichtigungen => Desktop-Benachrichtigung

@janekptacijarabaci
Danke schön.

Nach meinem Verständnis lässt die Implementierung im Test-Zweig derzeit nur eine Benachrichtigung zu, wenn der Benutzer der Site die Erlaubnis dazu erteilt. Es ist, als würde man Notification direkt anrufen. Der Benutzer hat immer noch keine Wahl, die Benachrichtigung von der Site zu deaktivieren, sondern das Benutzerskript zuzulassen.

Ich bin mir nicht sicher, was diese API Ihrer Meinung nach sein sollte. Aber ich hoffe, dass dieser mit einer anderen Berechtigungssteuerung als Inhaltsskripts von der Website funktioniert. (Und das tun TM derzeit. Sie erlauben immer Userscript-Show-Benachrichtigungen)

@tiansh

Die Frage ist, wie es geht...

Die Desktop-Benachrichtigung in Chrome (Tampermonkey) ist anders:
https://developer.chrome.com/extensions/desktop_notifications

Dem Systemprinzipal (Chrome-privilegiert) sollte die Berechtigung erteilt werden. Aber...
Verwenden von Message-Passing (insbesondere unter e10s on) - killt alle Events (onclick, ondone).
Diese Funktion kann wie folgt verwendet werden:
https://github.com/greasemonkey/greasemonkey/blob/3.9/modules/sandbox.js#L75
(https://github.com/greasemonkey/greasemonkey/blob/3.9/modules/menucommand.js#L90)
aber ich überlasse es der Community/arantius (ich bin mir nicht sicher, wie man es am besten macht).
(Ich weiß nicht, ob das jemand machen möchte: #2275 - http://arewewebextensionsyet.com/#notifications)

Ich habe jetzt keine bessere Idee...

Ich habe jedoch einige Versuche unternommen...

Bearbeitet:
Aber... GM_notification() zweimal (und öfter) hintereinander ausführen funktioniert bei mir nicht.

Siehe auch Fehler 1263155 ( 1294332 , 1306822 ) ...

Zu Ihrer Information...
BEHOBEN FEST
https://bugzilla.mozilla.org/show_bug.cgi?id=862395

Also... Wurde es implementiert oder nicht?

@VBelozyorov , ich glaube nicht, dass es für 3.x implementiert wurde. Aber für 4.x #2590

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen