百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

初略Web API Notification 桌面通知

myzbx 2025-10-02 04:24 13 浏览

HTML5 Web Notifications API 通知接口用于向用户配置和显示桌面通知弹窗。例如,Email邮件通知、来电提醒、聊天信息提醒或任务提醒等。

关于Web开发技术中 Notification API 接口,其实在很早已经出来,却未曾使用过,最近项目中有个小场景需求,故以初略笔记。

HTML5 Web Notification API

实际应用场景

Web端聊天通知、邮件通知、电话通知及其他任务进度性通知。

传统通知方式

曾经我们见过类似处理方式,离开当前页面标签,会看到标签标题闪烁性文本内容提醒式样。

修改变更Document中的Title予以提醒,但是存在一个弊端就是浏览器最小化状态下无法看到。因此,我们可以看看Web中的Notification接口,会更好解决此类问题与需求。

HTML5 Web Notification

是浏览器的通知接口,用于在用户的桌面(而不是网页上)显示通知信息,同时该特性可以应用于Web Worker 中。

1、构造方法

let notification = new Notification(title, options)

参数

title:通知标题。

options:设置通知的对象。

dir: 文字的方向;它的值可以是 auto(自动), ltr(从左到右), or rtl(从右到左)。

lang: 指定通知中所使用的语言。这个字符串必须在 BCP 47 language tag 文档中是有效的。

body: 通知中额外显示的字符串。

tag: 赋予通知一个ID,以便在必要的时候对通知进行刷新、替换或移除。

icon: 一个图片的URL,将被用于显示通知的图标。

2、事件处理

Notification.onclick:处理 click 事件的处理。每当用户点击通知时被触发。

Notification.onshow:处理 show 事件的处理。当通知显示的时候被触发。

Notification.onerror:处理 error 事件的处理。每当通知遇到错误时被触发。

Notification.onclose:处理 close 事件的处理。当用户关闭通知时被触发。

在调用此接口时,浏览器会询问用户是否接受。只有在用户同意的情况下,通知信息才会显示。

在运用过程中,首先检测浏览器是否支持该特性。

if (window.Notification) {
  // Y
} else {
  // N
}

之后得取得用户的同意方可。

Notification.permission 一个用于表明当前通知显示授权状态的字符串。可能的值包括:denied (用户拒绝了通知的显示), granted (用户允许了通知的显示), 或 default (因为不知道用户的选择,所以浏览器的行为与 denied 时相同)。

if (window.Notification && Notification.permission !== 'denied') {
  // ...
}

default:用户还没有做出任何许可,因此不会弹出通知。

granted:用户明确同意接收通知。

denied:用户明确拒绝接收通知。

另外,需要在HTTPS协议下方可生效,HTTP测试无效。

实际效果可以预览这里:Web Notification 通知示例,位于GITHUB上,下面简摘。

同时WIN10系统通知会存留在右小角通知窗口里。

WIN10系统 Web Notification 通知

<button id="notice">通知</button>
<script>
  document.getElementById('notice').addEventListener('click', _ => {
  if (window.Notification) {
    Notification.requestPermission();
    const notification = new Notification('有新通知', {
      body: `来自***的通知...`,
      silent: true, // 通知出现是否提示音
      // sound: '', // 定义通知出现时的声音资源
      icon: 'https://avatars2.githubusercontent.com/u/15223841?s=96&v=4'
    });
    notification.onclick = (event) => {
      window.open('http://www.deathghost.cn', 'DeathGhost');
      window.focus();
      notification.close();
    };
  } else {
     this._message.warning('对不起,你的浏览器不支持Web Notification!');
  }
  })
</script>

好了,就到这里,晚安!


相关推荐

vue3和web网页直接操作微信小程序云开发数据库

我们开发好小程序以后,有时候需要编写一个管理后台网页对数据库进行管理,之前我们只能借助云开发自带的cms网页,但是cms网页设计的比较丑,工作量和代码量也不够,所以我们今天就来带大家实现用vue3编写...

WebCurl:极致轻量的跨平台 HTTP 请求调试工具

在接口开发与测试领域,工具的轻量化、兼容性与安全性往往直接影响工作效率。WebCurl作为一款纯原生、无依赖的网页版API测试与调试工具,凭借极简架构与全场景适配能力,重新定义了接口调试工具的使...

webapi 全流程_webapi项目

C#中的WebAPIMinimalApi没有控制器,普通api有控制器,MinimalApi是直达型,精简了很多中间代码,广泛适用于微服务架构MinimalApi一切都在组控制台应用程序类【Progr...

Nodejs之MEAN栈开发(四)-- form验证及图片上传

这一节增加推荐图书的提交和删除功能,来学习node的form提交以及node的图片上传功能。开始之前需要源码同学可以先在git上fork:https://github.com/stoneniqiu/R...

CodeSpirit.Amis.AiForm 智能表单使用指南

概述AiForm是CodeSpirit.Amis框架的智能表单功能,专为AI驱动的长时间处理任务设计。它自动生成一个多步骤的用户界面,包含表单输入、进度监控、日志显示和结果展示等功能。功能特点...

初级、中级、高级前端工程师,对于form表单实现的区别

在React项目中使用AntDesign(Antd)的Form组件能快速构建标准化表单,特别适合中后台系统开发。以下是结合Antd的最佳实践和分层实现方案:一、基础用法:快速搭...

Bun v0.7 大版本发布,与 Vite 牵手来破局?

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力。今天给大家带来...

「前端」界面可视化开发框架formio.js

简介formio是一个前端可视化开发框架,无需写css/js就可以开发一套前端界面。直接在界面内拖拽就可以完成界面的布局及开发。数据交互也是固定的,表单校验也可以配置,功能非常强大。特性使用ES6...

小伙给同事爬取数据竟获取不到,竟要使用这种请求方式才能获取?

Http请求中FormData和RequestPayload两种参数的区别?AjaxPost请求中常用的两种的形式:formdata和requestpayload一、默认的表单方式...

WinForm + Win32 API 自定义无边框窗口实战(工业软件必备)

前言随着.NET9.0AOT(Ahead-of-Time)的发布,便萌生了用代码测试AOT编译效果的想法,同时评估未来是否为NanUI开发支持AOT编译的新版本。关于NanUI项目,若大家尚未了...

DeepSeek从入门到精通(11)——网页版、APP、API使用方式比较

DeepSeek提供了三种主要的使用方法:网页版、手机APP和API调用。这三种方式各有特点,适用于不同的使用场景。下面从使用方法和主要特点两方面进行比较:一、网页版使用方法:直接通过浏览器访问De...

初略Web API Notification 桌面通知

HTML5WebNotificationsAPI通知接口用于向用户配置和显示桌面通知弹窗。例如,Email邮件通知、来电提醒、聊天信息提醒或任务提醒等。关于Web开发技术中Notificat...

什么是API网关?——驱动数字化转型的“隐形冠军”

什么是API网关API网关(APIGateway)是一个服务器,位于应用程序和后端服务之间,提供了一种集中式的方式来管理API的访问。它是系统的入口点,负责接收并处理来自客户端的请求,然后将请求路由...

.NET 7使用 Entity Framework Core 制作增删改查(CRUD) Web API 教程

在本文中,我们将使用EntityFrameworkCore(EFCore)实现一个.NET7WebAPICRUD示例。WebAPI是一个构建HTTP服务的框架,可以从浏览器、移动设备和...

C# ASP.NET Core Web Api 与 MVC 模式下 body 参数传递,post 参数方式

在ASP.NETCore中,WebAPI和MVC模式在处理HTTP请求时,特别是POST请求,使用body参数来传递数据的方式非常相似。两者都使用模型绑定来自动将请求体中的数据映射到C#对象上。下...