在Chrome扩展程序中显示通知

时间:2014-07-25 22:46:53

标签: javascript google-chrome google-chrome-extension google-chrome-app

我正在编写我的第一个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 个答案:

答案 0 :(得分:31)

在Chrome中显示通知有三种主要方式。

1)前面提到的chrome.notifications API。它将显示一个祝酒词(不仅仅是系统托盘中的一个指示),但作为开发人员,你对它的显示方式几乎没有发言权。使用情况概述here

Chrome notification

2)标准HTML Notification API。在Chrome中,与chrome.notifications类似,但对格式控制较少且不受Chrome通知中心管理。使用情况概述here

3)如果您真的想要控制它的显示方式,那么最具侵入性和最难的方法是将UI用内容脚本注入所有页面。

如果你这样做,你会遇到几个问题:

  • 一般来说,自己设计UI会比较困难;
  • 用户界面将仅限于网页视口;
  • CSS可能会从页面中流失并破坏您的UI(虽然Shadow DOM可以作为答案);
  • 您需要对所有网页上的数据进行一揽子授权"只是为了展示你的用户界面它往往会吓跑用户。

如果你决定走这条路,那么这里有一个可能有用的问题:Chrome extension content scripts custom ui