簡體   English   中英

有沒有辦法手動卸載 chrome 擴展的后台腳本?

[英]Is there a way to manually unload a background script for a chrome extension?

我正在開發一個 Chrome 擴展程序來跟蹤您使用計算機的時間。 我使用一個間隔遞增,並正在檢查計算機是否使用 chrome.idle.queryState 鎖定,如果它被鎖定,我不會更改我的計數器。

有沒有辦法手動卸載背景頁面,而不是不斷檢查間隔? 或者后台腳本是否會自動卸載和重新加載,比如在計算機休眠 X 分鍾之后? 由於我有一個間隔,我想知道腳本是否會自行卸載。 我做了類似的事情:

setInterval(function () {
    chrome.idle.queryState(15, function (state) {
        if (state !== "locked") {
            counter += 1;
            console.log(counter);
        }
    }
}, 6000);

感謝 wOxxOm 和 Nadia Chibrikova 回答問題。 在卸載腳本時,最好使用非持久性后台腳本,如下所示:

...
"background": {
    "scripts": ["background.js"],
    "persistent": false
},
...

這將在 15-30 秒后卸載,無論任何間隔,只要沒有打開的消息端口並且您不在 devtools 中檢查它。 出於我的目的,我保持消息端口打開,因此我使用一個變量來跟蹤 Chrome 是否空閑,使用 chrome.idle.onStateChanged 並相應地修改了我的代碼,如下所示:

chrome.idle.setDetectionInterval(15);
chrome.idle.onStateChanged.addListener(function (state) {
    if (state === "locked") {
        isLocked = true;
    } else {
        isLocked = false;
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM