Chrome 扩展程序 V3 无法读取未定义的 setBadgeBackgroundColor 的属性

Cip*_*ian 2 javascript google-chrome-extension

我正在尝试使 V3 Chrome 扩展正常工作,但我不确定如何更改此有效的 V2 代码。

清单.json

{
  "name": "Extension name",
  "version": "1.0",
  "manifest_version": 3,
  "description": "Display API Info.",
  "background": {
    "service_worker": "background.js"
  },
  "icons": {
    "16": "./icons/icon16.png",
    "48": "./icons/icon48.png",
    "128": "./icons/icon128.png"
  },
  "action": {}
}
Run Code Online (Sandbox Code Playgroud)

背景.js

chrome.browserAction.setBadgeBackgroundColor({ color: "green" });

const setStuff = () => {
    chrome.browserAction.setBadgeText({ text: `...` });
}

const callApi = () => {
    setStuff();

    setTimeout(() => fetch('https://api.com/api')
        .then(response => response.json())
        .then(data => {
            chrome.browserAction.setBadgeText({ text: `${data.info}` });
        }).catch(error => console.log(error)), 5000)

}

callApi()

setInterval(function () {
    callApi()
}, 300000);
Run Code Online (Sandbox Code Playgroud)

本地测试的时候出现这个错误

Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'setBadgeBackgroundColor')
Run Code Online (Sandbox Code Playgroud)

use*_*468 8

更改清单 v2 的代码:

chrome.browserAction.setBadgeBackgroundColor({ color: "green" });

const setStuff = () => {
    chrome.browserAction.setBadgeText({ text: `...` });
}
Run Code Online (Sandbox Code Playgroud)

对于 Chrome 扩展清单 v3 的此代码:

chrome.action.setBadgeBackgroundColor({ color: "green" });

const setStuff = () => {
    chrome.action.setBadgeText({ text: `...` });
}
Run Code Online (Sandbox Code Playgroud)