`
zha_zi
  • 浏览: 590230 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

html5 Notification 用法

阅读更多

 

Chrome浏览器支持桌面提示,像GMAIL和WEBQQ所用的那样子,它可以跨越浏览器沙盒,通过调用浏览器提供的API来实现,也就是说,即使浏览器最小化了,或者你正在别的桌面下(Linux下),同样也可以收到提示。目前有关Notification的标准还处在草案阶段。

Linux下Chrome15浏览器发出的Notification显示效果

Linux下Chrome15浏览器发出的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,一般需要以下几个步骤:

  1. 请求授权:这一步必须要由用户的动作发起,比如用户的点击动作等。Chrome浏览器的代码是:
    window.webkitNotifications.requestPermission(callback);
    可以传入一个回调函数,但这个函数不会有任何参数传入。
  2. 检查授权:在创建Notification对象之前最好检查一下是否得到授权,若没有会抛异常。Chrome的代码是:
    window.webkitNotifications.checkPermission();
    有关返回的代码参建上面讲的。
  3. 创建对象:目前有两种Notification对象,一是模板型的,可以指定iconUrl(图标URL),title(标题) 以及body(内容),另外一种是网页型的,传入一个URL加载这个页面,发现这一种方式不会响应加载的页面中的alert事件,而且由于是跨沙盒的,因此window.opener为空,引用不到父窗口。而且,弹出的Notification好像也无法指定大小(反正我没找到方法)。
  4. 绑定事件:共有下面几种事件可以供监听:onshow(ondisplay), onerror, onclose, onclick.
  5. 显示提示:调用show()方法,很简单。
  6. 关闭提示:调用cancel()方法。
另外,Notification对象有一个属性是replaceId, 如名称一样,它是用来替换一个已经显示的Notification的,只要两个Notification的replaceId相同,则第二个就会替换第一个的显示。注: 这个属性必须要在show() 之前设定才有效。
分享到:
评论

相关推荐

    前端项目-HTML5Notification.zip

    5. **使用方法**: 要在项目中使用这个polyfill,你需要将`notification-polyfill.js`引入到你的HTML页面中,然后按照HTML5通知API的规范编写代码。首先检查权限,根据权限状态决定是否请求或直接创建通知。 6. **...

    HTML5 Notification(桌面提醒)功能使用实例

    接下来,我们通过一个具体的实例来演示如何使用HTML5 Notification API。实例的功能是每隔20分钟提醒用户休息一下,以避免长时间面对电脑屏幕对眼睛造成伤害。 实现这个功能的代码逻辑是这样的: 首先,检查当前...

    Ext JS Notification 插件

    本文将深入探讨Ext JS Notification插件的使用方法、功能特性以及如何集成到项目中。 首先,Notification插件提供了一种非侵入性的方法来向用户传达关键信息,如操作成功、警告或错误提示。这些通知可以是临时的,...

    HTML5实现Notification API桌面通知功能

    Notification API是实现这一功能的关键,下面我们将深入探讨这个API的工作原理、使用方法以及兼容性问题。 首先,为何需要HTML5的桌面通知?传统的网页通知通常依赖于页面的显示状态,当用户离开当前页面时,这些...

    android用户界面之Notification教程实例汇总

    - **内容概述**: 文章深入介绍了Android中几种常见的通知方式——Toast、Notification和Alarm的工作原理及使用方法,并给出了具体的代码示例。 **9. NotificationManagerandNotification学习笔记** - **链接**: ...

    前端项目-angular-ui-notification.zip

    ### 使用方法 1. 引入库:首先,你需要在 HTML 文件中引入 AngularJS 和 Bootstrap 的 CSS 和 JS 文件,以及 Angular UI Notification 的库文件。 2. 注册模块:在你的 AngularJS 应用中,需要将 `angular-ui-...

    自定义jquery插件:为jquery加入Notification机制

    为了使用这个插件,你可以在jQuery的选择器之后调用`notification`方法,传入所需的参数: ```javascript $('.your-selector').notification({ message: '操作成功!', type: 'success', duration: 5000 }); ```...

    phonegap-notification

    使用 `navigator.notification.alert()` 方法可以创建警告提示,参数包括消息文本、确认按钮的标题和可选回调函数。 4. **确认对话框(confirm)** 确认对话框提供了一个让用户做出选择的机会。它有“确定”和...

    前端项目-angular-notification.zip

    3. **使用服务**:在需要使用通知的地方,通过依赖注入获取`NotificationService`,然后调用其方法创建通知。 ```typescript import { Component } from '@angular/core'; import { NotificationService } from '...

    使用HTML5的Notification API制作web通知的教程

    在本文中,我们将深入探讨如何使用HTML5的Notification API来创建Web通知,这是一种可以在用户桌面或移动设备上显示提醒信息的高效方式。首先,我们需要确保目标浏览器支持这一API。你可以通过访问caniuse.com来检查...

    HTML5之消息通知的使用(Web Notification)

    HTML5的Web Notification API是一种强大的功能,允许网页在用户的设备上弹出系统级别的通知,即使用户没有直接在浏览器上激活该页面。这个功能对于提醒用户有关网站活动、更新或者重要信息非常有用。以下是对HTML5...

    notification

    5. JavaScript交互:在JavaScript中,可以使用Bootstrap的JS插件或者自定义脚本来控制通知的显示、隐藏和动画效果。例如,使用`$(element).alert('show')`来显示通知,`$(element).alert('dispose')`来移除通知。 ...

    notification:它是一个 HTML 组件,能够使用 javascript 生成通知,

    CapJS/notification 是 HTML 的组件,能够使用 javascript 生成通知,类似于alert()方法的作用, alert()它能够使用 HTML 文档的 DOM,利用 HTML 和 CSS 的所有功能。 快速开始 鲍尔 使用 bower ...

    PhoneGap Android插件 调用toast 和 notification

    PhoneGap是一种跨平台的移动应用开发框架,它允许开发者使用HTML、CSS和JavaScript来构建原生的移动应用。在Android平台上,PhoneGap通过一个叫做Cordova的内核与设备的API进行交互,使得Web应用可以访问设备的功能...

    Html5新特性-Notifications入门

    如果权限为“default”,则需要向用户请求权限,通过`Notification.requestPermission()`方法实现。 下面是一个简单的使用示例: ```html <!DOCTYPE html> <html> <script src="jquery.js"></script> 发送通知...

    前端项目-jquery.notification.zip

    4. **创建通知**: 使用 `$.notification('show', options)` 方法创建并显示通知。 ```javascript $.notification('show', { title: '提示信息', message: '这是一个简单的通知示例.', type: 'info' // 可选值有...

    Notify_html5桌面通知

    通常在用户执行某个操作(如点击按钮)时,会调用`Notification.requestPermission()`方法,浏览器会弹出询问是否允许发送通知的对话框。 4. **创建通知**: 如果用户给予权限,可以使用`new Notification(title, ...

    react-web-notification:使用HTML5 Web Notification API的React组件

    该组件在dom元素中未显示任何内容,但在React.js的生命周期中使用render方法触发HTML5 Web Notification API。演示版安装npm install --save react-web-notification原料药Notification 包装Web通知的React组件。...

Global site tag (gtag.js) - Google Analytics