You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome扩展中navigator.getBattery()失效,求替代方案

解决Chrome扩展中navigator.getBattery()不可用的问题

你需要使用Chrome扩展专属的chrome.system.battery API替代标准Web API navigator.getBattery(),具体操作如下:

1. 声明必要权限

在扩展的manifest.json中添加system.battery权限(同时保留你原本用到的power权限),否则无法调用该API:

{
  "manifest_version": 3,
  // 其他配置项...
  "permissions": [
    "system.battery",
    "power"
  ]
}

2. 调整代码逻辑

用chrome.system.battery.getInfo()替换原有的navigator.getBattery(),修改后的函数如下:

function toggleBatterySaver(enable) {
  if (enable) {
    chrome.system.battery.getInfo((batteryInfo) => {
      // batteryInfo.level 取值范围为0-1,对应0%到100%的剩余电量
      if (batteryInfo.level < 0.2) {
        chrome.power.requestKeepAwake("system");
      }
    });
  } else {
    chrome.power.releaseKeepAwake();
  }
}

补充说明

  • chrome.system.battery.getInfo()是Chrome扩展提供的同步回调式API,直接返回当前电池状态数据,无需Promise链式调用。
  • 返回的batteryInfo对象包含level(剩余电量比例)、charging(是否处于充电状态)等字段,完全覆盖你的功能需求。

内容的提问来源于stack exchange,提问作者baranwalayush

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 08:14:51