8

Ich schreibe meine erste Chrome-Erweiterung. In meiner Chrome-Erweiterung habe ich eine Option im Rechtsklick-Kontextmenü hinzugefügt.Benachrichtigungen in der Chrome-Erweiterung anzeigen

 chrome.contextMenus.create({ 
      "id" : "MyExntesion", 
      "title" : "My Extension", 
      "type" : "normal", 
      "contexts" : ["image"], 
      "onclick" : this.handleClick 
     }); 

In meiner handleClick-Methode möchte ich eine Benachrichtigung anzeigen. Diese Benachrichtigung sollte in der oberen rechten Ecke des Browserfensters erscheinen, was bestätigt, dass der Benutzer auf das Kontextmenü geklickt hat. Wie mache ich das?

Ich habe etwas Forschung, aber nichts nützliches gefunden. https://developer.chrome.com/extensions/notifications dies spricht über System-Tray-Benachrichtigung, wo diese https://developer.chrome.com/extensions/browserAction#method-setPopup können Sie neue Popups erstellen, aber sie werden nur angezeigt, wenn Erweiterung Symbol angeklickt wird.

Antwort

20

Es gibt 3 Möglichkeiten, eine Benachrichtigung in Chrome anzuzeigen.

1) Vorgenanntes chrome.notifications API. Es wird einen Toast zeigen (nicht nur ein Hinweis im Systray), aber Sie als Entwickler haben wenig Einfluss darauf, wie es aussieht. Verwendungsübersicht here.

Chrome notification

2) Standard-HTML-Notification API. Sieht in Chrome ähnlich aus wie chrome.notifications, abgesehen von weniger Kontrolle über die Formatierung und nicht vom Benachrichtigungscenter von Chrome. Verwendungsübersicht here.

3) Wenn Sie wirklich kontrollieren wollen, wie es angezeigt wird, ist die invasivste und härteste Methode, Ihre UI in alle Seiten mit einem Inhaltsskript zu injizieren.

Sie stehen mehrere Probleme, wenn Sie das tun:

  • Im Allgemeinen ist es schwieriger ist, die Benutzeroberfläche selbst zu entwerfen;
  • Die Benutzeroberfläche wird auf das Ansichtsfenster der Webseite beschränkt;
  • CSS kann von der Seite bluten und Ihre Benutzeroberfläche beschädigen (obwohl Shadow DOM eine Antwort sein kann);
  • Sie benötigen allgemeine Berechtigungen für "Daten auf allen Webseiten", nur um Ihre Benutzeroberfläche anzuzeigen. Es neigt dazu, Benutzer zu verscheuchen.

Wenn Sie sich entscheiden, dennoch diesen Weg zu gehen, hier ist eine Frage, die helfen könnten: Chrome extension content scripts custom ui

+0

Ich weiß nicht, ob Sie Evernote Web Clipper Erweiterung verwendet haben, aber sind diese Meldungen in dieser Erweiterung gezeigt gebaut mit die dritte Option, die Sie vorgeschlagen haben? – sublime

+0

Aber wenn Sie die Option 1 oder 2 verwenden (ich versuche, Nummer 2 zu verwenden) Wie erhalten Sie die Registrierungs-ID, um Push-Benachrichtigungen an den Chrome-Browser zu senden? Und wie warten Sie auf diese Benachrichtigungen? Danke für diese Antwort! – eloibm

+1

@eloibm _Displaying_ notifications hat absolut nichts damit zu tun _ _erhalten_ sie. Meditiere über 'chrome.gcm' ** und verknüpfte Dokumente **. Wenn Sie immer noch Fragen haben, stellen Sie eine neue Frage - fragen Sie in den Kommentaren keine unverbindlichen Nachfragen, das ist nicht der Zweck von Kommentaren. – Xan