如何在客户应用程序中实施桌面通知?

时间:2019-02-05 10:02:51

标签: javascript html

我正在尝试在客户应用程序中开发桌面通知JS。该代码可在Firefox上正常运行,但不能在Chrome上运行。我正在将通知权限更改为允许设置->高级->内容设置->通知->允许/拒绝,但仍然无法使用。

这是我的代码:

notifyMe: function() {
    if (!("Notification" in window)) {
      alert("Ce navigateur ne supporte pas les notifications desktop");

    } else if (Notification.permission !== 'denied') {

      Notification.requestPermission(function(permission) {
        if (!('permission' in Notification)) {
          Notification.permission = permission;
        }

        if (permission === "granted") {
          var notification = new Notification("Notify ")
        }

      });
    }
}

有人可以帮助我吗?谢谢。

3 个答案:

答案 0 :(得分:1)

从chrome版本62开始,仅在浏览器的安全上下文中支持Notifications。

  

何时认为上下文是安全的?

     
      
  • 在安全(或本地)交付上下文且无法使用上下文提供安全访问时,上下文将被视为安全   指向不安全上下文的API。实际上,这意味着   一个具有安全上下文的页面,以及其父页面上的所有页面   并且开锁链必须已经安全交付。
  •   
  • 本地传送的文件,例如http://localhost和file://路径被认为已安全传送。
  •   
  • 非本地上下文必须通过https://或wss://提供,并且不应考虑所使用的协议   不推荐使用。
  •   

有关安全上下文的更多详细信息,请阅读MDN Secure Contexts

关于仅在安全上下文中支持通知的信息,请检查Notification的浏览器兼容性部分

答案 1 :(得分:0)

使用某些功能,例如HTTPSNotificationPush Notificationservice workergeolocation时,您需要一个以Speech to Text协议运行的网站(使用Google服务)以及其他一些功能。 Chrome更加严格,尤其是在较新的版本中。

答案 2 :(得分:0)

var myNotification = window.webkitNotifications.createNotification('mike.png', 'New Content Available', 'Click to view');
myNotification.onclick = function() {
    window.location = 'http://teamtreehouse.com/new/content';
}
myNotification.show();

如果难以理解,请点击以下链接:https://developers.google.com/web/fundamentals/codelabs/push-notifications/