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

标签 javascript firefox-addon firefox-addon-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;
    }
}

有什么想法如何将显示时间设置为“必须交互”之类的内容吗?

最佳答案

目前(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 .

关于javascript - Mozilla WebExtension 桌面通知显示时间和/或需要用户交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39450554/

相关文章:

javascript - WebdriverJS wait() 是否返回一个 web 元素?

c++ - 使用 C++ XPCOM 扩展访问 Firefox 上的选项卡

javascript - 将二进制数据从网页传递到 Firefox 扩展

javascript - 扩展如何监听 WebSocket? (如果 WebSocket 在 iframe 中怎么办?)

javascript - 何时在 Chrome/Web 扩展中断开 MutationObserver 的连接?

PHP 在 Javascript 中回显

javascript - 如何在方括号表示法等点表示法中使用变量

c# - 如何检查 ASP.NET 页面上的文本区域是否已被编辑?

security - 安全存储 Firefox 插件?

javascript - 未捕获的类型错误 : Cannot read properties of undefined (reading 'onClicked' )