google-chrome-extension - extension教學 - google chrome extensions develop



我怎樣才能聽通知? (2)

有沒有擴展的方法來添加一個偵聽器瀏覽器通知,並訪問它的內容? 我正嘗試使用Google日曆的通知來觸發自定義功能。


Answer #1

不是如果你想要的是一個Chrome擴展,發送通知捕獲谷歌日曆。 如果我沒有弄錯,Google日曆會發送郵件和短信通知。 此外,我認為沒有API函數可以要求查看是否有待處理的通知。 文檔中唯一的事情就是將Google+事件通知發送到Google+,或許可以訪問API。


Answer #2

您可以掛鉤webkitNotifications.createNotification函數,以便每當創建通知時運行一些特定的代碼。

  1. 創建一個名為notifhook.js的文件:

    (function() {
        // save the original function
        var origCreateNotif = webkitNotifications.createNotification;
    
        // overwrite createNotification with a new function
        webkitNotifications.createNotification = function(img, title, body) {
    
            // call the original notification function
            var result = origCreateNotif.apply(this, arguments);
    
            // bind a listener for when the notification is displayed
            result.addEventListener("display", function() {
                // do something when the notification is displayed
                // use img, title, and body to read the notification
                // YOUR TRIGGERED CODE HERE!
            });
    
            return result;
        }
    })();
    
  2. 接下來,將notifhook.js包含在清單中的web_accessible_resources列表中。

  3. 最後,在一個內容腳本中 ,注入一個<script>元素到notifhook.js的頁面作為它的src

    var s = document.createElement("script");
    s.src = chrome.extension.getURL("notifhook.js");
    document.documentElement.appendChild(s);
    

您可能會試圖使用notifhook.js作為您的內容腳本,但這不會工作,因為內容腳本和網頁具有不同的執行環境 。 覆蓋內容腳本的webkitNotifications.createNotification版本webkitNotifications.createNotification不會影響Google日曆頁面。 因此,您需要通過<script>標記註入,這會影響頁面和內容腳本。





google-chrome-extension