按钮未显示在 Firefox WebExtension 通知中
Buttons not showing up in Firefox WebExtension notifications
我正在开发一个Firefox WebExtension,我正在尝试在其中显示带有按钮的通知。我在 Chrome 中工作。根据文档,这在Firefox中是支持的。按钮在通知选项中列为可选。
chrome.notifications.create(notificaitonId, {
type: "basic",
iconUrl: chrome.extension.getURL("images/unknown.svg"),
title: "Blah",
message: "A Message",
buttons: [{title: "Get More Details"}]
});
当我运行此代码时,我看到通知。但是,我没有看到按钮。 我错过了什么吗?它实际上不受支持吗?通知的唯一示例不使用按钮,因此没有帮助。
不幸的是,截至 2016 年 3 月 18 日,按钮尚未针对 WebExtension 通知实现。
关于 MDN 的通知选项文档指出 [强调/格式化我的]:
前四个属性 -
type
,iconUrl
,title
,message
- 是 在 notifications.create() 中是必需的,在 通知.更新()。火狐目前只支持这些 四个属性。
并在浏览器兼容性部分:
火狐只支持:
type
、iconUrl
、title
、message
。
其中的重要部分("Firefox 目前仅支持这四个属性",Firefox 仅支持:type
、iconUrl
、title
、message
)已添加到 2016-03-07 的文档。因此,如果您查看该日期之前的文档,则不会有任何迹象表明buttons
尚未实施。
此外,源代码还有注释:
FIXME:仍然不支持许多选项,尤其是
按钮。
您还可以在浏览器中找到当前用于此目的的源代码:chrome://extensions/content/ext-notifications.js
解决方案:自行实施buttons
:
在网络扩展中:
也许可以从WebExtensions中自己实现按钮。但是,我对WebExtensions不够熟悉,无法说出是否可能。如果是这样,您可能需要查看为其他类型的 Firefox 附加组件实现通知和通知按钮的源代码。
对于 Firefox,通常:
如果这是我需要的东西,我可能会选择继续为整个 Firefox 实现 buttons
和我需要的任何其他选项,并将代码提交给 Mozilla 进行审查并包含在 Firefox 中。我知道这听起来像是一件大事,也是后方的痛苦,但这真的不应该那么困难。
如果您确实希望对其进行处理,则不应进行任何特殊设置。 实现 WebExtensions 通知的 JavaScript 代码是文件 ext-notifications.js它包含在 omni.ja 文件(只是一个扩展名为 .ja
的.zip
文件)中的 chrome''toolkit''content''extensions 目录中,该文件位于 Firefox 安装目录中。请注意,安装目录层次结构中实际上有 3 个不同的 omni.ja 文件。您想要的位于安装层次结构的根目录中,而不是浏览器或 webapprt 子目录中
处理它就像提取该文件一样简单,修改它,制作更新的 omni.ja 文件并将更新的 omni.ja 文件放入发布目录。有一段时间,我每次发布 Firefox 时都会例行公事地这样做,因为我想要一个更长的书签 MRU 文件列表。我最终崩溃了,只是做了一个覆盖扩展,更改书签最近的文件夹列表长度,以替换我正在更改的文件。如果需要,您可以执行相同的操作来实现支持按钮所需的更改。当然,这会导致您当前的扩展依赖于正在安装的另一个扩展,直到代码集成到 Firefox 中为止。但是,这将导致您拥有您现在想要的开发功能,并且该功能进入 Firefox 至少比等待 Mozilla 的其他人实现它要快一些。像这样的覆盖扩展只需要一个 install.rdf 文件、一个两行 chrome.manifest 文件和更新的 ext-notifications.js 您想要覆盖/替换当前文件的文件。
- Firebase2(Firebase.google.com)推送通知-从外部管理
- 无法在窗口内使用rootScope.通知
- JS,用于播放提示音以通知未按预期工作
- 单击Chrome通知后,转到已打开的选项卡
- Windows Azure通知中心错误
- Meteor应用程序上的警报/通知不会出现
- GCM推送通知,如果应用程序在手机中关闭(Phonegap Android)
- 在通知点击时使用Ion中的OneSignal插件路由到应用程序中的状态
- PHP/JS-EchoJs函数PHP curl发布后的通知
- 将属性设置为未定义时未通知观察者
- Acync JS HTTP请求通知请求
- 在渲染骨干视图时获得通知
- 是否可以使用推送通知Windows 8 Metro应用程序's使用Javascript
- 如何设置特定时间的本地通知
- 如何使用Quickblox在Cordova应用程序中实现推送通知支持
- 通过$.when传播进度通知
- 在Strongloop中发送推送通知时,设备从安装中删除
- 如何安全地获取&使用Facebook应用程序访问令牌发送通知使用PHP&Javascript
- Gulp复制任务完成后如何执行通知
- 按钮未显示在 Firefox WebExtension 通知中