网站有新的重要新闻发布时,提醒用户有新内容

业务要求:当网站有新的重要新闻发布时,我们需要向用户发送通知,提醒用户有新内容。

实现

js 复制代码
if ("Notification" in window) {
  Notification.requestPermission().then(permission => {
    if (permission === "granted") {
      new Notification("Title", {
        body: "Notification message",
        icon: "path/to/icon.png"
      });
    }
  });
}

解析

检查浏览器是否支持通知功能,并在支持的情况下请求用户授予通知权限,若用户授予了权限,则创建并显示一个浏览器通知。以下是对代码的详细解释:

  1. 检查浏览器是否支持通知功能:

javascript

javascript 复制代码
if ("Notification" in window) {

"Notification" in window 这一条件表达式用于检查当前浏览器的 window 对象中是否存在 Notification 属性。如果存在,则说明浏览器支持使用通知功能;如果不存在,则说明不支持,代码块内的后续操作将不会执行。

  1. 请求通知权限:

javascript

ini 复制代码
Notification.requestPermission().then(permission => {

Notification.requestPermission() 是一个方法,它会弹出一个系统对话框,请求用户授予网页发送通知的权限。该方法返回一个 Promise,在用户做出选择(允许、拒绝或阻止)后,Promise 会被解决,并将用户的选择("granted"、"denied" 或 "default")作为参数传递给 then 回调函数。

  1. 处理权限授予情况:

javascript

ini 复制代码
if (permission === "granted") {

在 then 回调函数中,通过判断 permission 的值是否为 "granted" 来确定用户是否授予了通知权限。如果是 "granted",则表示用户允许网页发送通知。

  1. 创建并显示通知:

javascript

arduino 复制代码
new Notification("Title", {
  body: "Notification message",
  icon: "path/to/icon.png"
});

如果用户授予了通知权限,代码会创建一个新的 Notification 对象。Notification 构造函数接受两个参数:第一个参数是通知的标题(这里是 "Title");第二个参数是一个配置对象,包含通知的详细信息,如 body(通知的正文内容,这里是 "Notification message")和 icon(通知图标的路径,这里是 "path/to/icon.png")。创建 Notification 对象后,浏览器会显示相应的通知。

相关推荐
晓得迷路了4 分钟前
栗子前端技术周刊第 148 期 - Turborepo 2.11、Chrome 154 iframe、Node.js 26...
前端·javascript·css
IT_陈寒23 分钟前
Vite热更新失效?你可能漏了这个配置项
前端·人工智能·后端
10年前端老司机1 小时前
Next.js+LangGraph.js+ 简历工具AI Agent完整落地
前端·langchain·agent
IT_陈寒6 小时前
Java中equals方法比了个寂寞?原来这才是正确的重写姿势
前端·人工智能·后端
默_笙6 小时前
🚓 分诊台与拆题术:让 RAG 学会判断和规划
前端·javascript
CopyCode6 小时前
用 AI 迁项目有多爽?我把 Webpack 迁 Vite 的全过程记下来了
前端·架构
去伪存真6 小时前
Electron 自动化发布指南:GitHub Actions 跨平台打包全纪录
前端·electron
计算机魔术师6 小时前
OpenAI智能体失控闯进美国政府网站,53张用户图片外泄背后
前端
颜进强6 小时前
14 · NestJS ExecutionContext 执行上下文:守卫、拦截器、过滤器拿到的"同一个 context",为什么能力不一样?
前端·后端·ai编程
程序员Flycan6 小时前
🚀 跨域终结者:前端代理服务器(Proxy)原理解析与配置总结
前端