Mozilla WebExtension桌面通知显示时间和/或需要用户交互

时间:2016-09-12 12:40:01

标签: javascript firefox-addon firefox-webextensions

我有一个Mozilla的WebExtension,它通过桌面通知功能通知我。

它完全符合我的要求,但Firefox会在X秒后自动关闭通知。是否可以在用户点击之前显示通知?

我所做的是每隔5秒关闭并重新打开通知,因此用户必须单击它才能永久关闭它。

这看起来像这样:

// This is the notification function
function notifyMeFunction() {    
    var notification = new Notification('Alert', {
        icon: chrome.extension.getURL('icons.png'),
        body: "New Notification",
        tag: "DesktopNotification",
    });


    notification.onclick = function(event) {
        notificationClicked = true;
    }

    notification.onclose = function(event) {
        notificationClicked = true;
    }
}

// Function which will self-open every 5 seconds
function notifyMe() {
    if (notificationClicked == false) {
        notifyMeFunction();
        setTimeout(notifyMe, 5000);
    } else {
       notificationClicked = false;
    }
}

如何将显示时间设置为“必须互动”的任何想法?

1 个答案:

答案 0 :(得分:2)

目前(Firefox版本< = 51.0a1),没有向API指示用户必须与这些通知进行交互的方法。也没有任何方法可以指定向用户显示通知的时间。

注意:您使用的是Web Notifications API,而不是WebExtensions chrome.notifications API。两者都没有办法要求用户在Firefox中进行交互。

从Chrome 50开始,Google Chrome可以选择要求用户必须与通知进行互动:requireInteraction。因此,在某个时间点,Firefox可能会支持这样的选项。

但是,至少截至目前为止,字符串为requireInteraction does not exist in the Firefox source code