这篇翻译不完整。请帮忙从英语翻译这篇文章

Notifications API 允许网页控制向最终用户显示系统通知 —这些都在顶级浏览上下文视口之外,因此即使用户已经切换标签页或移动到不同的应用程序,也可以显示。该API被设计成与不同平台上的现有通知系统兼容。

概念和用法

在支持该接口的平台上,显示一个系统通知通常涉及两件事。首先,用户需要授予当前源的权限以显示系统通知,这通常在应用或站点初始化时, 使用Notification.requestPermission() 方法来完成。

这将产生一个请求对话框,沿着以下几行:


从这里,用户可以选择允许来自此来源的通知,阻止来自此来源的通知,或不选择此点。一旦做出选择,该设置通常将持续用于当前会话。

:从Firefox 44开始, 通知(Notifications) 和推送(Push)的权限已合并。如果为通知授予权限,推送也将启用。

接下来,使用 Notification() 构造函数创建一个新通知。这个方法可以传入两个参数。这必须传递一个标题参数,并可以选择性地传递一个选项对象来指定选项,如文本方向,正文,显示图标,通知声音播放, 等等。

Note: 此特性在 Web Worker 中可用。

此外, Notifications API 规范对  ServiceWorker API指定了多个添加,以允许 service workers发送通知。

:想了解怎么在你的应用里使用通知接口,请阅读  Using the Notifications API

接口(Notifications interfaces)

Notification
定义的通知对象

附加参数(Service worker additions)

ServiceWorkerRegistration
该对象包含 ServiceWorkerRegistration.showNotification() 和 ServiceWorkerRegistration.getNotifications() 方法,用于控制通知的显示。
ServiceWorkerGlobalScope
该对象包含 ServiceWorkerGlobalScope.onnotificationclick 事件处理函数,用于通知被点击的时候触发绑定的事件处理函数。
NotificationEvent
该对象是功能明确的事件对象,表示一个通知事件被触发了,继承自ExtendableEvent

官方文档

Specification Status Comment
Notifications API Living Standard Living standard

浏览器兼容性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 5webkit[1]
22
4.0 (2.0)moz[2]
22.0 (22.0)
未实现 25 6[3]
Available in workers ? 41.0 (41.0) ? ? ?
Service worker additions

42.0

42.0 (42.0)[4] ? ? ?
Feature Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support ?

(Yes)

4.0 (2.0)moz[2]
22.0 (22.0)
1.0.1moz[2]
1.2
未实现 ? 未实现

(Yes)

Available in workers ? ? 41.0 (41.0) (Yes) ? ? ? ?
Service worker additions 未实现 未实现 42.0 (42.0)[4] (Yes) ? ? ? 42.0

[1] 在 Chrome 22 之前, 通知接口遵守一个旧版本的提案(an old prefixed version of the specification )使用一个包含前缀符的navigator.webkitNotifications 对象来实例化一个通知对象。 在 Chrome 32之前, Notification.permission属性不支持。

[2] 在 Firefox 22 (Firefox OS <1.2)之前,通知对象的实例化需要使用navigator.mozNotification 对象的 createNotification() 方法。另外,通知对象需要使用 show() 方法来显示,并且仅支持 click 和 close 事件 (Nick Desaulniers 写了一个通知的兼容解决方法( a Notification shim )来覆盖旧浏览器和现代浏览器。)

[3] Safari 从Safari 6开始支持通知,但只在 Mac OSX 10.8+ (Mountain Lion)上。

[4] Firefox 42 has shipped with web notifications from Service Workers disabled.

Firefox OS permissions

当你在 Firefox OS app中使用通知时,请确保在manifest文件中添加了desktop-notification 权限 。 Notifications can be used at any permission level, hosted or above:

"permissions": {
  "desktop-notification": {}
}

See also

文档标签和贡献者

标签: 
 此页面的贡献者: xgqfrms-GitHub, vankai
 最后编辑者: xgqfrms-GitHub,