Chrome扩展程序通知只显示一次?

时间:2013-08-19 14:32:33

标签: javascript google-chrome-extension notifications

这将验证页面是否为https以及localStorage项目的计算结果为true或false,并根据该项目显示通知。代码放在popup.js:

chrome.tabs.query({
 active: true,               
 lastFocusedWindow: true    
    }, function(array_of_Tabs) {

    var tab = array_of_Tabs[0];
    var url = tab.url;

 if (url.indexOf('https:') === 0 && localStorage.getItem("secureRead").value !== true) {
           chrome.extension.getBackgroundPage().showNotify();
       }
    });

实际的通知代码放在background.js文件中:

var notification = webkitNotifications.createNotification(
  'icon48.png',
  'Secure page detected.',
  'Checking "Enable HTTPS reading" in the setting is required.'
);

function showNotify()
{
  notification.show();
}

问题是这只能在全球范围内使用一次。然后,不会检测,评估其他页面,也不会显示任何通知。我做错了什么?

我也没有任何错误。

1 个答案:

答案 0 :(得分:1)

首先,您应该知道当前的通知系统(即webkitNotifications.createNotification)已弃用,并已从Chrome中删除,至少在Windows和ChromeOS上已删除。有关详细信息,请参阅http://developer.chrome.com/extensions/desktop_notifications.html

其次,如果用户关闭通知,则通知可能为空;我试试这个:

function showNotify()
{
    if (notification == null)
    {
        notification = webkitNotifications.createNotification(
                         'icon48.png',
                         'Secure page detected.',
                         'Checking "Enable HTTPS reading" in the setting is required.'
                       );
    }
    notification.show();
}