使用 Javascript 实现浏览器推送提醒功能的示例
本篇文章内容简单,速读只需两三分钟,通过这两三分钟的时间你就可以给自己的网站实现推送提醒的功能
Notification类
简单明了,这个类就是负责推送消息的,只要用户当前没有关闭页面,及时是在使用其他程序,浏览器也能够将消息推送给用户
请求权限
我们在手机上都收到过消息推送,在接收推送之前我们会先将消息推送权限开放给应用。在浏览器中也一样,在使用浏览器推送之前,需要先获取权限
Notification.requestPermission().then(permission=>{ console.log(permission) })
通过requestPermission方法可以为当前域名请求消息推送的权限,这个方法可以使用Promise语法来实现请求结果的处理。当然,你也可以使用回调的方式来实现
回调的参数permission表示当前请求后用户的选择:允许推送/不允许推送,它的值也分别有两个granted/denied,当我们发现用户不允许的推送的时候,就可以在回调中做出相应的提示,告诉用户可能会导致不能及时接收消息,并且告诉用户如果想要接收消息该如何操作等
查看权限
由于推送的权限是基于域名的,因此同一个网站在请求一次权限后,下一次打开时就不会再次请求,而是直接通过第一次的用户选择来决定网站是否能向用户推送
因此我们就需要能够获取到当前网站的推送的状态,可以通过下面的这个属性来获取状态:
Notification.permission
permission属性的值有三种:granted-允许推送;denied-拒绝推送;default-还未申请权限
当值为default时,我们就可以向用户请求推送的权限了
发起一条推送
constnote=newNotification(title,opts)
通过上面的方式可以声明一条推送,它有两个参数,第一个参数是消息的标题,这个是必填的一个参数;而通过第二个选填参数,我们则可以实现更多自定义的显示内容:
第二个参数接收一个对象,它有一下几个属性:
- body:推送的主体内容
- tag:推送的标识,如果我们声明了多个Notification,而这些推送的tag都相同,则只会推送一次
- icon:需要在推送中显示的图标的URL
- data:推送的消息所带有的数据信息,当用户点击推送窗口时,可以通过这些信息为用户展示相应的内容
- requireInteraction:正常情况下,推送发出后若用户没有操作,几秒后就会消失,而将该属性设为true则可以让推送始终维持而不消失,默认值是false
当我们需要自定义推送显示时长的时候,可以通过最后一个属性将自动消失关闭,然后配合note.close()和setTimeout方法人为控制推送时长
点击推送事件
既然已经可以成功的发起一条推送,那么该如何监听到用户是否点击了这个推送呢?很简单,通过onclick属性就可以实现
note.onclick=()=>{ //在这里实现用户点击后的逻辑 }
其他
需要注意的是,并不是所有浏览器都支持Notification,所以在使用前需要先检测能否使用
或许有的小伙伴会想,这个功能不错,这样在手机上也能实现网页消息推送了。然而很不幸的是,移动端浏览器几乎100%不支持Notification:(
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。