我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Html5中桌面通知Notification的实现示例

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Html5中桌面通知Notification的实现示例

这篇文章主要介绍Html5中桌面通知Notification的实现示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1. 实例一个Notification

let n = new Notification(  "这是一个通知消息", //这是必选Title 一定会显示的通知标题  {    icon: "xxx.png", // 这个icon是用来显示通知中的左边图片    body: "你好啊,我是xxx",   // 通知中的内容字符    dir: auto,             // 文字的方向 值包含: auto(自动), ltr(从左到右), rtl(从右向左)    tag: "gxlself"          // 给与这个通知消息一个ID, 用来对这个通知消息进行 刷新.移除.替换 等操作    // long: "en-US"               //lang字段 需要参考https://tools.ietf.org/html/bcp47 并不是必须 没看出啥作用...    // ...            // 其余可选属性见下实例属性  })

访问对应的实例属性:
n.actions // 一个只读的NotificationAction对象数组。每一个对象描述用户可以在一个通知中选择的单个操作。
n.image // 通知的一部分显示的图像的URL
n.badge // 当没有足够的空间显示通知本身时,用于表示通知的图像的URL。
n.permission // 有三个值 granted, denied, 或default 当状态值为granted时可以发送通知消息 default默认用户没处理 denied 用户拒绝
n.renotify // 布尔值。新通知出现的时候是否替换之前的。如果设为true,则表示替换,表示当前标记的通知只会出现一个。注意这里的“当前标记”没?没错,true参数要想起作用,tag必须需要设置属性值。
n.requireInteraction // 布尔值, 指的是通知是否保持活动直到用户点击或取消通知 而不是自动关闭..
n.silent // 布尔值。通知出现的时候,是否要有声音。默认false, 表示无声。
n.timestamp //通知创建或者可以使用的时间。
n.data // 任意类型和通知相关联的数据。
n.vibrate // 通知显示时候,设备震动硬件需要的震动模式。所谓振动模式,指的是一个描述交替时间的数组,分别表示振动和不振动的毫秒数,一直交替下去。例如[200, 100, 200]表示设备振动200毫秒,然后停止100毫秒,再振动200毫秒。 (移动端)
n.sound // 字符串。音频地址。表示通知出现要播放的声音资源。
n.sticky // 通知吸附不容易被清除... (移动端)
n.noscreen // 布尔值。是否不再屏幕上显示通知信息。默认false, 表示要在屏幕上显示通知内容。(移动端)

此时实例 n 有四个事件处理:
1> onclick 用户对通知信息的点击事件
2> onshow 通知消息展示之后触发的事件
3> onerror 遇到错误会触发的事件
4> onclose close事件的处理

2. Notification对象会有什么属性/方法呢?利用控制台中的window对象输出点开查看就可以看到:

Html5中桌面通知Notification的实现示例

值得注意的是: requestPermission()方法仅在Notification对象有效,实例对象无效!!!这个方法是用来向用户申请显示通知的权限,只能被用户主动去调用(在页面onload中可以调用,可以向用户申请,之后再去发送...)

实例对象拥有的方法有:

    (1). close() 用于关闭通知消息 --> 也可以在onshow方法加延迟调用,提高用户体验感...

    (2). addEventListener() 监听事件(这个通用方法)

    (3). removeEventListener 卸载监听事件(通用,同上)

    (4). dispatchEvent 分派事件(同上)

接下来,写一个js测试, 如果使用的是谷歌浏览器,建议在设置中显示通知将本地服务地址加入允许通知

但是,http的域名在谷歌浏览器被默认关闭,还不允许更改,查看谷歌浏览器控制台有警告信息--->

index.js:78 [Deprecation] The Notification API may no longer be used from insecure origins. You should consider switching your application to a secure origin, such as HTTPS. See https://goo.gl/rStTGz for more details.

嗯,好吧,让加https证书,真的是有毒...虽然在自己的主页中添加该功能也只能在火狐浏览器爽一爽....

(腾讯云有免费一年的ssl证书,可自己进行安装...)

// index.jswindow.onload = function(){  let gxlself = new Gxlself()  gxlself.requestPermission()  setTimeout(()=>{    gxlself.showNotification()  },3000)}class Gxlself{   constructor(){    this.isNotificationSupported = "Notification" in window;   }    isPermissionGranted(){        return Notification.permission === 'granted';    }    requestPermission(){        if(!this.isNotificationSupported){            return;        }        Notification.requestPermission(status=>{            let permission = Notification.permission;        })    }    showNotification(){        if (!this.isNotificationSupported) {            return;        }        if (!this.isPermissionGranted()) {            return;        }        var n = new Notification("gxlself对您发来问候", {            icon : 'gxlself.png',            body : '欢迎来访,鄙人万分感激! 点击即可跳转至我的博客页面~'        });        n.onshow = function () {            console.log('gxlself已经发送通知信息');            setTimeout(function() {                n.close();            }, 5000);        }        n.onclick = function () {            location.href = 'http://gxlself.com/blog'            n.close()        }        n.onerror = function (err) {            console.log(err)        }        n.onclose = function () {            console.log('gxlself消息窗口关闭')        }    }  }

这是火狐浏览器执行后的效果展示:

Html5中桌面通知Notification的实现示例

再来看看谷歌本地跑的效果:(域名已经被默认拦截关闭,上面已经说明,不再重复)

Html5中桌面通知Notification的实现示例

谷歌的效果其实挺好看的,嗯...只是一个https把我给屏蔽了 哎...

------- 桌面版应用 -----------

当你要在开放 web 应用中使用通知时,请确保将 desktop-notification 权限添加到你的 manifest 文件中。通知可以被用于任何权限级别,hosted 或更高。

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

以上是“Html5中桌面通知Notification的实现示例”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Html5中桌面通知Notification的实现示例

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Html5中桌面通知Notification的实现示例

这篇文章主要介绍Html5中桌面通知Notification的实现示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 实例一个Notificationlet n = new Notification(  "这是一
2023-06-09

HTML5中如何实现Web Notification桌面通知功能

这篇文章主要介绍了HTML5中如何实现Web Notification桌面通知功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。有的时候我们会在桌面右下角看到这样的提示:这种
2023-06-09

怎么在HTML5中实现Web Notification桌面右下角通知功能

这篇文章将为大家详细讲解有关怎么在HTML5中实现Web Notification桌面右下角通知功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。html5桌面通知(Web Notifica
2023-06-09

vue实现浏览器桌面通知的示例代码

本文主要介绍了vue实现浏览器桌面通知的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-01-08

详解Android中使用Notification实现进度通知栏(示例三)

我们在使用APP的过程中,软件会偶尔提示我们进行版本更新,我们点击确认更新后,会在通知栏显示下载更新进度(已知长度的进度条)以及安装情况(不确定进度条),这就是我们今天要实现的功能。实现效果如下:在代码实现功能前,我们先解释进度条的两种状态
2022-06-06

Android种使用Notification实现通知管理以及自定义通知栏实例(示例四)

示例一:实现通知栏管理 当针对相同类型的事件多次发出通知,作为开发者,应该避免使用全新的通知,这时就应该考虑更新之前通知栏的一些值来达到提醒用户的目的。例如我们手机的短信系统,当不断有新消息传来时,我们的通知栏仅仅是更改传来短信的数目,而不
2022-06-06

Android中使用Notification实现状态栏的通知

在使用手机时,当有未接来电或者新短消息时,手机会给出响应的提示信息,这些提示信息通常会显示到手机屏幕的状态栏上。 Android也提供了用于处理这些信息的类,它们是Notification和NotificationManager。其中,No
2022-06-06

HTML5中Canvas如何实现商场监控的示例分析

这篇文章主要介绍了HTML5中Canvas如何实现商场监控的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。伴随国内经济的高速发展,人们对安全的要求越来越高。为了防止下
2023-06-09

Spring2.5.6中面向切面编程及实现的示例分析

这期内容当中小编将会给大家带来有关Spring2.5.6中面向切面编程及实现的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。面向切面编程(AOP)通过提供另外一种思考程序结构的途经来弥补面向对象编
2023-06-17

Html5中基于canvas实现原创俄罗斯方块的示例

这篇文章将为大家详细讲解有关Html5中基于canvas实现原创俄罗斯方块的示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。第一次写俄罗斯方块的时候已经是1年多前了,也是我刚刚学js不久。为了加强对js
2023-06-09

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录