当前位置: 首页 > 面试题库 >

Chrome桌面通知示例

支嘉祥
2023-03-14
问题内容

如何使用Chrome桌面通知?我想在我自己的代码中使用它。


问题答案:

在现代浏览器中,有两种通知类型:

  • 桌面通知易于触发,只要打开页面即可工作,并且可能在几秒钟后自动消失
  • Service Worker通知稍微复杂一点,但是它们可以在后台(即使关闭页面后)也可以工作,并且是持久性的,并支持操作按钮

API调用采用相同的参数(操作除外-在桌面通知中不可用),这些参数已在Google的Web基础站点上的MDN和服务工作者中详细记录。

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

// request permission on page load

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');

  };

 }

}


 <button onclick="notifyMe()">Notify me!</button>

我们正在使用W3C NotificationsAPI。请勿将此与Chrome扩展通知API混淆。Chrome扩展程序通知显然仅在Chrome扩展程序中有效,并且不需要用户的任何特殊权限。

请注意,由于该bug,Chrome无法使用Linux上的通知图标



 类似资料:
  • 桌面通知 通知用户发生了一些重要的事情。桌面通知会显示在浏览器窗口之外。 下面的图片是通知显示时的效果,在不同的平台下,通知的显示效果会有些细微区别。 通常直接使用一小段 JavaScript 代码创建通知,当然也可以通过扩展包内的一个单独HTML页面。 声明 可以在 extension manifest 中声明使用通知权限,像这样: { "name": "My extension", .

  • 在 iOS 和 Android 移动设备中,Native App 向用户推送通知是很常见的行为,这是重新吸引用户访问应用最有效方法之一。然而推送通知一直被认为是 Web App 缺少的能力,在接下来的两节我们将介绍 Web App 如何实现推送通知。 Notification API 是 HTML5 新增的一套展示桌面通知的 API,桌面通知具有全局效果,它脱离了浏览器,采用和 Native Ap

  • 要求是创建一个可以注册点击事件的桌面通知。我不能使用web套接字或任何浏览器通知 我无法使用任务栏图标和系统任务栏,因为它们无法在显示消息上注册单击事件。他们可以在trayicon上有点击事件,但不能在显示消息上。最接近的例子——“当我们注册一条Skype消息时,它会为我们打开Skype” 截图 点击上面的通知Skype聊天打开。托盘图标不支持相同的功能。要么围绕它工作,要么采取新的方法。 希望我

  • 说明 一:mqtt连接:账号:ms_门店编号,密码:sha1(商家apiKey),端口号:1883,订阅主题:table_门店编号 mqtt SDK地址:http://emqtt.com/clients 二:订阅的消息体格式:注意:超时消息无需再进行业务处理,直接废弃该通知 示例: { "qid":"3377680", // mqtt 消息id "msid":"6786", "msName":"果

  • 谢谢你的帮助, 卢卡斯

  • 我的目标是在Chrome或Firefox中从浏览器中当前未打开的web应用程序(姑且称之为X)发送Gmail风格的桌面通知,而不需要用户安装应用程序或扩展程序。如果用户需要授予从X接收通知的权限也可以,如果需要打开浏览器才能出现通知也可以,只要不需要在浏览器中打开X即可。不需要打开任何浏览器窗口的解决方案也会起作用。 我花了一天的时间来研究这个问题,到目前为止,我想我已经学到了: 自OSX Mav