Chrome浏览器支持桌面提示,像GMAIL和WEBQQ所用的那样子,它可以跨越浏览器沙盒,通过调用浏览器提供的API来实现,也就是说,即使浏览器最小化了,或者你正在别的桌面下(Linux下),同样也可以收到提示。目前有关Notification的标准还处在草案阶段。
如上图所示效果,感觉Notification目前还很简单,样式无法自定义,会随浏览器或操作系统平台的不同而不同。
Chrome对Notification的实现,与W3C标准有些不同,貌似是Chrome先起草的,后又被纳入W3C标准中。
Chrome的Notification介绍,以及Chrome的webkitNotification的API文档. 另外,这里是W3C标准
有关向用户使用授权
这个功能的开启要向用户请求授权,而且这个动作必须是由用户发起的,比如用户点击链接或按钮什么的,不能由JavaScript直接向用户发起请求。另外,由于Chrome的实现跟W3C的标准有些不同,其请求授权后返回的错误码也是不同的:
Chrome的定义如下:
- PERMISSION_ALLOWED (0) indicates that the user has granted permission to scripts with this origin to show notifications.
- PERMISSION_NOT_ALLOWED (1) indicates that the user has not taken an action regarding notifications for scripts from this origin.
- PERMISSION_DENIED (2) indicates that the user has explicitly blocked scripts with this origin from showing notifications.
可是我实际测试中,发现只会返回2(不允许)和0(允许)两种情况, 所以我一般使用if(window.webkitNotifications.checkPermission() == 0) 来确定拥有权限。
W3C的标准如下:
- USER_ALLOWED (2)Indicates that the user has not made a permissions decision, but the user agent’s default policy is to allow permission.
- DEFAULT_ALLOWED(1)Indicates that the user has not made a permissions decision, but the user agent’s default policy is to deny permission.
- DEFAULT_DENIED(-1)Indicates that the user has granted permission.
- USER_DENIED(-2)Indicates that the user has denied permission.
事件名称的不同
W3C标准中,定义Notification显示后要触发的事件是(on)show, 而Chrome中却是(on)display, 其它没有什么不同。
一般使用步骤
使用Notification,一般需要以下几个步骤:
- 请求授权:这一步必须要由用户的动作发起,比如用户的点击动作等。Chrome浏览器的代码是:
window.webkitNotifications.requestPermission(callback);
可以传入一个回调函数,但这个函数不会有任何参数传入。 - 检查授权:在创建Notification对象之前最好检查一下是否得到授权,若没有会抛异常。Chrome的代码是:
window.webkitNotifications.checkPermission();
有关返回的代码参建上面讲的。 - 创建对象:目前有两种Notification对象,一是模板型的,可以指定iconUrl(图标URL),title(标题) 以及body(内容),另外一种是网页型的,传入一个URL加载这个页面,发现这一种方式不会响应加载的页面中的alert事件,而且由于是跨沙盒的,因此window.opener为空,引用不到父窗口。而且,弹出的Notification好像也无法指定大小(反正我没找到方法)。
- 绑定事件:共有下面几种事件可以供监听:onshow(ondisplay), onerror, onclose, onclick.
- 显示提示:调用show()方法,很简单。
- 关闭提示:调用cancel()方法。
另外,Notification对象有一个属性是replaceId, 如名称一样,它是用来替换一个已经显示的Notification的,只要两个Notification的replaceId相同,则第二个就会替换第一个的显示。注: 这个属性必须要在show() 之前设定才有效。
相关推荐
5. **使用方法**: 要在项目中使用这个polyfill,你需要将`notification-polyfill.js`引入到你的HTML页面中,然后按照HTML5通知API的规范编写代码。首先检查权限,根据权限状态决定是否请求或直接创建通知。 6. **...
接下来,我们通过一个具体的实例来演示如何使用HTML5 Notification API。实例的功能是每隔20分钟提醒用户休息一下,以避免长时间面对电脑屏幕对眼睛造成伤害。 实现这个功能的代码逻辑是这样的: 首先,检查当前...
本文将深入探讨Ext JS Notification插件的使用方法、功能特性以及如何集成到项目中。 首先,Notification插件提供了一种非侵入性的方法来向用户传达关键信息,如操作成功、警告或错误提示。这些通知可以是临时的,...
Notification API是实现这一功能的关键,下面我们将深入探讨这个API的工作原理、使用方法以及兼容性问题。 首先,为何需要HTML5的桌面通知?传统的网页通知通常依赖于页面的显示状态,当用户离开当前页面时,这些...
- **内容概述**: 文章深入介绍了Android中几种常见的通知方式——Toast、Notification和Alarm的工作原理及使用方法,并给出了具体的代码示例。 **9. NotificationManagerandNotification学习笔记** - **链接**: ...
### 使用方法 1. 引入库:首先,你需要在 HTML 文件中引入 AngularJS 和 Bootstrap 的 CSS 和 JS 文件,以及 Angular UI Notification 的库文件。 2. 注册模块:在你的 AngularJS 应用中,需要将 `angular-ui-...
为了使用这个插件,你可以在jQuery的选择器之后调用`notification`方法,传入所需的参数: ```javascript $('.your-selector').notification({ message: '操作成功!', type: 'success', duration: 5000 }); ```...
使用 `navigator.notification.alert()` 方法可以创建警告提示,参数包括消息文本、确认按钮的标题和可选回调函数。 4. **确认对话框(confirm)** 确认对话框提供了一个让用户做出选择的机会。它有“确定”和...
3. **使用服务**:在需要使用通知的地方,通过依赖注入获取`NotificationService`,然后调用其方法创建通知。 ```typescript import { Component } from '@angular/core'; import { NotificationService } from '...
在本文中,我们将深入探讨如何使用HTML5的Notification API来创建Web通知,这是一种可以在用户桌面或移动设备上显示提醒信息的高效方式。首先,我们需要确保目标浏览器支持这一API。你可以通过访问caniuse.com来检查...
HTML5的Web Notification API是一种强大的功能,允许网页在用户的设备上弹出系统级别的通知,即使用户没有直接在浏览器上激活该页面。这个功能对于提醒用户有关网站活动、更新或者重要信息非常有用。以下是对HTML5...
4. **构建并发布Notification**:使用Builder构建出`Notification`对象后,通过`NotificationManager`的`notify()`方法将其发布到系统。`notify()`方法需要一个唯一的通知ID,以区分不同的通知。 此外,`...
5. JavaScript交互:在JavaScript中,可以使用Bootstrap的JS插件或者自定义脚本来控制通知的显示、隐藏和动画效果。例如,使用`$(element).alert('show')`来显示通知,`$(element).alert('dispose')`来移除通知。 ...
CapJS/notification 是 HTML 的组件,能够使用 javascript 生成通知,类似于alert()方法的作用, alert()它能够使用 HTML 文档的 DOM,利用 HTML 和 CSS 的所有功能。 快速开始 鲍尔 使用 bower ...
PhoneGap是一种跨平台的移动应用开发框架,它允许开发者使用HTML、CSS和JavaScript来构建原生的移动应用。在Android平台上,PhoneGap通过一个叫做Cordova的内核与设备的API进行交互,使得Web应用可以访问设备的功能...
通常在用户执行某个操作(如点击按钮)时,会调用`Notification.requestPermission()`方法,浏览器会弹出询问是否允许发送通知的对话框。 4. **创建通知**: 如果用户给予权限,可以使用`new Notification(title, ...
如果权限为“default”,则需要向用户请求权限,通过`Notification.requestPermission()`方法实现。 下面是一个简单的使用示例: ```html <!DOCTYPE html> <html> <script src="jquery.js"></script> 发送通知...
4. **创建通知**: 使用 `$.notification('show', options)` 方法创建并显示通知。 ```javascript $.notification('show', { title: '提示信息', message: '这是一个简单的通知示例.', type: 'info' // 可选值有...
该组件在dom元素中未显示任何内容,但在React.js的生命周期中使用render方法触发HTML5 Web Notification API。演示版安装npm install --save react-web-notification原料药Notification 包装Web通知的React组件。...