简体   繁体   中英

show notifications in chrome extension

I'm writing my first chrome extension. In my chrome extension I have added an option in Right Click Context menu.

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

In my handleClick method, I want to show a notification. This notification should pop out in top right corner of the browser window which just confirms that user has clicked on the context menu. How do I do that?

I did some research but didn't find anything useful. https://developer.chrome.com/extensions/notifications this talkes about system tray notification, where as this https://developer.chrome.com/extensions/browserAction#method-setPopup lets you create new popups but they are only shown when extension icon is clicked.

There are 3 principal ways of showing a notification in Chrome.

1) Aforementioned chrome.notifications API . It will show a toast (not merely an indication in systray), but you as a developer have little say on how it appears. Usage overview here .

Chrome通知

2) Standard HTML Notification API . In Chrome, looks similar to chrome.notifications , except for less control over formatting and not managed by Chrome's notification center. Usage overview here .

3) If you really want control over how it's shown, the most invasive and hard way is to inject your UI into all pages with a content script.

You face several problems if you do that:

  • In general, it's harder to design the UI yourself;
  • The UI will be confined to the webpage viewport;
  • CSS may bleed from the page and mangle your UI (though Shadow DOM can be an answer);
  • You need blanket permissions for "data on all webpages" just to show your UI. It tends to scare users away.

If you decide to go that route nonetheless, here's a question that might help: Chrome extension content scripts custom ui

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM