gpt4 book ai didi

javascript - 使用 WebExtensions 检测用户桌面不活动

转载 作者:行者123 更新时间:2023-11-29 19:11:32 24 4
gpt4 key购买 nike

我有一个插件,我想在桌面上发出通知,但前提是用户正在积极使用计算机(例如,鼠标指针在任何地方移动,即,不仅在浏览器窗口中)。

可以使用 WebExtensions 做到这一点吗?

我相信它会是这样的:

  • 脚本.js

    function Notify(id, title, message)
    {
    var props = {
    "type": "basic",
    "title": title,
    "iconUrl": "images/icon-128px.png",
    "message": message
    };

    var propsCopy = JSON.parse(JSON.stringify(props));

    propsCopy.requireInteraction = true;

    //Prevent exception in Firefox
    try {
    chrome.notifications.create(id, propsCopy, function() {});
    } catch (ee) {
    chrome.notifications.create(id, props, function() {});
    }
    }
  • 背景.js

    var standByNotifications = [];

    function registerNotification(id, title, message) {
    if ([user is inactive]) {
    standByNotifications.push({ "id": id, "title": title, "message": message });
    } else {
    Notify(id, title, message);
    }
    }

    setInterval(function() {
    if ([user is inactive] === false) {
    var tmp = standByNotifications.reverse();

    for (var i = tmp.length - 1; i >= 0; i--) {
    Notify(tmp[i].id, tmp[i].title, tmp[i].message);
    }

    standByNotifications = []; //Clear
    }
    }, 1000);

最佳答案

Chrome 有一个专用的 API,chrome.idle , 检测空闲状态。

chrome.idle.queryState(
5 * 60, // seconds
function(state) {
if (state === "active") {
// Computer not locked, user active in the last 5 minutes
} else {
// Computer is locked, or the user was inactive for 5 minutes
}
}
);

它还提供了一个事件,chrome.idle.onStateChanged,当状态改变时通知你。


网络扩展 list this API as not yet supported (2016-07-21).

  • queryState 始终报告“事件” 状态。
  • onStateChanged 不可用。

关于javascript - 使用 WebExtensions 检测用户桌面不活动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38507977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com