不幸的是,截至 2016 年 3 月 18 日,按钮尚未针对 WebExtension 通知实现。
MDN 上的NotificationOptions 文档指出 [强调/格式化我的]:
前四个属性 - type
, iconUrl
, title
, message
- 在 notifications.create() 中是必需的,在notifications.update()中是可选的
。Firefox 目前只支持这四个属性。
并在浏览器兼容性部分:
Firefox 仅支持:type
, iconUrl
, title
, message
.
其中的重要部分(“Firefox 当前仅支持这四个属性”和 Firefox 仅支持:、、、、。type
)已添加到 2016-03-07 的文档中。因此,如果您在该日期之前查看了文档,则没有任何迹象表明尚未实施。iconUrl
title
message
buttons
另外,源码有注释:
// FIXME:仍然不支持很多选项,尤其是
// 按钮。
您还可以在浏览器中找到当前用于此目的的源代码:chrome://extensions/content/ext-notifications.js
解决方案:实现buttons
自己:
在 WebExtensions 中:
可以在WebExtensions中自己实现按钮。但是,我对 WebExtensions 不够熟悉,无法说出它是否可能。如果是这样,您可能需要查看为其他类型的 Firefox 附加组件实现通知和通知按钮的源代码。
对于 Firefox,一般来说:
如果这是我需要的东西,我可能会选择继续buttons
为整个 Firefox 实施 ,以及我需要的任何其他选项,并将代码提交给 Mozilla 以供审查并包含在 Firefox 中。我知道这听起来可能很重要,而且很痛苦,但它真的不应该那么困难。
如果您确实希望对其进行处理,则不应进行任何特殊设置。为 WebExtensions 实现通知的 JavaScript 代码是文件ext-notifications.js,它包含在omni.ja文件(只是扩展名更改为 的文件)的chrome\toolkit\content\extensions目录中,该文件位于火狐安装目录。请注意,安装目录层次结构中实际上有 3 个不同的omni.ja文件。您想要的是安装层次结构的根目录,而不是浏览器或webapprt子目录中的目录。.zip
.ja
处理它就像提取该文件、修改它、制作更新的omni.ja文件并将更新的omni.ja文件放入发布目录一样简单。有一段时间,我在每次发布 Firefox 时都会这样做,因为我想要一个更长的书签 MRU 文件列表。我最终崩溃了,只是做了一个覆盖扩展,更改书签最近的文件夹列表长度, 替换我正在更改的文件。如果您愿意,您可以执行相同的操作来实现支持按钮所需的更改。当然,这会导致您当前的扩展依赖于另一个正在安装的扩展,直到将代码集成到 Firefox 中为止。但是,这将导致您拥有现在开发所需的功能,并且该功能进入 Firefox 至少比等待 Mozilla 的其他人实现它要快一些。像这样的覆盖扩展只需要一个install.rdf文件、一个两行chrome.manifest文件和您想要覆盖/替换当前文件的更新的ext-notifications.js文件。