[英]How to Detect a New Chrome Session in Extension
我有一個擴展需要檢測新的 Chrome session 何時啟動。 我在這里找到了一個建議如下的帖子:
chrome.runtime.onStartup.addListener(async function() {
console.log("new startup detected");
await chrome.storage.local.set({"status":false});
});
但是,聽眾似乎不起作用。 也不清楚它指的是什么初創公司。 啟動 Chrome 或啟動擴展程序。 有人可以闡明如何檢測新 chrome 何時啟動嗎? TIA。
更新代碼
chrome.windows.onCreated.addListener(async function() {
console.log("new startup detected");
await chrome.storage.local.set({"status":false});
});
更新了清單
{
"manifest_version": 3,
"name": "Auto_Select",
"description": "This extension auto selects Mturk HITs",
"version": "1.0.12",
"action": {
"default_icon": "auto_select.png",
"type": "module",
"default_popup": "auto_select.html"
},
"permissions": [
"tabs",
"activeTab",
"storage",
"contextMenus",
"tts"
],
"host_permissions": [
"<all_urls>"
],
"background": {
"service_worker": "auto_select.js"
},
"content_security_policy": {
"extension_pages": "script-src 'self'; object-src 'self'; script-src-elem 'self'"
}
}
我假設您想檢測一個新的 session 的開始,並且您想在服務工作者中檢測它。
這就是為什么你應該使用恰當命名的chrome.storage.session
以下擴展在chrome.storage.session
中獲取並設置一個虛擬密鑰,以檢測新 session 的開始。
如何驗證擴展是否正常工作:
清單.json
{
"manifest_version": 3,
"name": "Detect Session Start",
"version": "1.0.0",
"permissions": [
"storage"
],
"background": {
"service_worker": "background.js"
}
}
背景.js
(async () => {
let { started } = await chrome.storage.session.get("started");
if (started === undefined) {
console.log("session has started");
await chrome.storage.session.set({ started: true });
}
else {
console.log("session is already running");
}
})();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.