簡體   English   中英

Web通知無法在chrome上運行,但在Firefox和Microsoft Edge上可以正常運行

[英]Web notifications is not working on chrome, but it's working fine on firefox and microsoft edge

我正在嘗試發出Web通知,該通知在Firefox和Microsoft Edge上運行良好。 即使在Safari上也能正常工作。 但它不想在Chrome上運行。 它沒有顯示錯誤。 這是我的代碼:

    <script>
    window.setInterval(function(){notifyMe();}, 5000);
    function notifyMe() {
      if (!("Notification" in window)) {
        alert("This browser does not support desktop notification");
      } else if (Notification.permission === "granted") {
          var data = []
          data['title'] = "notification's title";
          data['body'] = "notification's body";
          var notification = new Notification(data['title'], {
            'body': data['body']
          });
          notification.onclick = function(event) {
            window.open('https://www.example.com/', '_blank');
          }
      } else if (Notification.permission !== "denied") {
        Notification.requestPermission().then(function (permission) {
          if (permission === "granted") {
            var notification = new Notification("really");
          }
        });
      }
    }
</script>

您的網站是否使用https:// -因為Chrome在不可靠的來源(例如http:// )上棄用了Notifications API

否則,您的代碼就可以在Chrome中正常運行

網絡通知

HTTPS(Chrome默認模式)

本地調試

HTTP

鉻://設置/內容/通知

https://pushassist.com/knowledgebase/how-to-enable-web-push-notifications-in-google-chrome-non-ssl-site/

  1. 打開chrome://flags/ ,然后搜索notification

  2. 啟用通知

在此處輸入圖片說明

演示代碼

 "use strict"; /** * * @author xgqfrms * @license MIT * @copyright xgqfrms * @created 2019-08-17 * * @description * @augments * @example * @link * */ let log = console.log; const webNotificationApp = (debug = false) => { try { if ("Notification" in window) { // let ask = window.Notification.requestPermission(); let ask = Notification.requestPermission(); ask.then( // Permission (permission) => { log(`permission =`, permission); if (permission === "granted") { log(`permission granted`); let msg = new Notification("App Upgrade Info", { body: "a new version app is available, click download: https://app.xgqfrms.xyz/download", icon: "https://cdn.xgqfrms.xyz/logo/icon.png", }); msg.addEventListener(`click`, (e) => { let btn = e.target.dataset(`btn-type`); if (btn === "ok") { log(`OK`); } else { log(`Cancel`); } alert(`clicked notification`); }); }else { log(`notification permission is denied!`); } } ) } else { console.warn(`your browser is too old, which not support web notification!`); } } catch (err) { console.error(`error =`, err); } }; document.addEventListener(`DOMContentLoaded`, () => { log(`DOMContentLoaded`); webNotificationApp(); }); // export default webNotificationApp; // export { // webNotificationApp, // }; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM