показывать уведомления в расширении chrome
Я пишу свое первое расширение chrome. В моем расширении chrome я добавил опцию в контекстном меню правой кнопкой мыши.
chrome.contextMenus.create({
"id" : "MyExntesion",
"title" : "My Extension",
"type" : "normal",
"contexts" : ["image"],
"onclick" : this.handleClick
});
В моем методе handleClick я хочу показать уведомление. Это уведомление должно выскочить в правом верхнем углу окна браузера, которое просто подтверждает, что пользователь нажал на контекстное меню. Как мне это сделать?
Я провел некоторые исследования, но не нашел ничего полезного. https://developer.chrome.com/extensions/notifications это говорит о системном трее уведомлений, где как это https://developer.chrome.com/extensions/browserAction#method-setPopup позволяет создавать новые всплывающие окна, но они отображаются только при нажатии на значок расширения.1 ответ:
Существует 3 основных способа отображения уведомлений в Chrome.
1) вышеупомянутый
chrome.notifications
API . Он покажет тост (а не просто указание в системном трее), но вы, как разработчик, мало что можете сказать о том, как он выглядит. Обзор использования здесь .2) стандартный HTMLNotification API . В Chrome выглядит так же, как
chrome.notifications
, за исключением меньшего контроля над форматированием и не управляется центром уведомлений Chrome. Обзор использования здесь .3) Если вы действительно хотите контролировать то, как это показано, самый инвазивный и трудный способ-это внедрить свой пользовательский интерфейс во все страницы с помощью скрипта контента.
Вы столкнетесь с несколькими проблемами, если сделаете это:
- В общем случае, труднее самостоятельно спроектировать пользовательский интерфейс;
- пользовательский интерфейс будет ограничен видовым окном веб-страницы;
- CSS может кровоточить со страницы и портить ваш пользовательский интерфейс (хотя Shadow DOM может быть ответом);
- Вам нужны общие разрешения для "данные на всех веб-страницах" просто чтобы показать свой пользовательский интерфейс. Это, как правило, отпугивает пользователей.
Если вы все же решите пойти этим путем, вот вопрос, который может помочь: chrome extension content scripts custom ui