首页 >web前端 >js教程 >如何在现代浏览器中实现桌面通知?

如何在现代浏览器中实现桌面通知?

Susan Sarandon
Susan Sarandon原创
2024-11-04 04:39:29393浏览

How to Implement Desktop Notifications in Modern Browsers?

Chrome 桌面通知示例

现代浏览器中存在两种类型的通知:

  • 桌面通知——易于触发,只要页面打开就有效,并且可能在几秒钟后自动消失。
  • 服务工作者通知——有点复杂,但它们可以在后台工作(即使在页面关闭后),是持久的并且支持操作按钮。

API 调用采用相同参数(操作除外——在桌面通知中不可用),这些参数在 MDN 上有详细记录,对于服务工作者,则在 Google 的 Web Fundamentals 网站上记录。

以下是一个 Chrome、Firefox、Opera 和 Safari 的 桌面 通知工作示例。请注意,出于安全原因,从 Chrome 62 开始,可能不再从跨域框架请求通知 API 权限,因此我们无法使用 StackOverflow 的代码片段演示这一点。您需要将此示例保存在网站/应用程序的 HTML 文件中,并确保使用 localhost:// 或 HTTPS。

<code class="js">// 在页面加载时请求权限
document.addEventListener('DOMContentLoaded', function() {
 if (!Notification) {
  alert('Desktop notifications not available in your browser. Try Chromium.');
  return;
 }

 if (Notification.permission !== 'granted')
  Notification.requestPermission();
});


function notifyMe() {
 if (Notification.permission !== 'granted')
  Notification.requestPermission();
 else {
  var notification = new Notification('Notification title', {
   icon: 'http://cdn.sstatic.net/stackexchange/img/logos/so/so-icon.png',
   body: 'Hey there! You\'ve been notified!',
  });
  notification.onclick = function() {
   window.open('http://stackoverflow.com/a/13328397/1269037');
  };
 }
}</code>
<code class="html"><button onclick="notifyMe()">Notify me!</button></code>

以上是如何在现代浏览器中实现桌面通知?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn