前端也能获取电池信息,5分钟带你了解奇奇怪怪的知识点

小册

这是我整理的学习资料,非常系统和完善,欢迎一起学习

引言

前端其实也能获取电池信息,以往都是通过客户端提供的JSBridge获取

获取电池信息

通过 Battery Status API,前端可以获取用户设备电池的相关信息,比如电量百分比、充电状态等。

js 复制代码
// 获取 BatteryManager 对象
navigator.getBattery().then(battery => {
  // TODO
});
  • BatteryManager 对象提供了 level、charging、chargingTime 等属性反映电池状态。

  • 监听 chargingchange、levelchange 等事件可以感知状态变化。

不同电量的反馈

获取电池信息后,可以根据电量百分比显示不同的提示:

  • 电量低于 20%时,给出明显的低电量警告,建议立即充电
  • 电量在 20% ~ 40%时,给出友善的充电提醒
  • 电量充足时,不需要特殊反馈

针对充电状态,也可以给出不同的反馈:

  • 当设备处于充电状态,可以显示充电图标、电量数字的充电动画等
  • 不在充电时,显示普通的电量信息
js 复制代码
// 处理不同电量的反馈
function handleBattery(battery) {
  if (battery.level < 0.2) {
    showWarning();
  } else if (battery.level < 0.4) {
    showReminder(); 
  }

  if (battery.charging) {
    showCharging();
  } else {
    showLevel(battery.level);
  }
}

// 监听电池状态变化
navigator.getBattery().then(battery => {
  battery.addEventListener('chargingchange', () => {
    handleBattery(battery);
  });
  
  // ...其他事件监听
})

兼容性

相关推荐
孟健9 小时前
Claude Code 同需求写两版对比:装不装 frontend-design 差多远?
前端·ai编程·claude
OpsEye9 小时前
大模型 Token 计量不准,是什么原因,怎么解决??
javascript·ai编程
梦de天空一米168811 小时前
【一个重复id让游戏卡在62%,聊聊配置表检查】
前端
ryn4839811 小时前
01 一个功能模块,怎么分层才不乱
前端·ai编程·claude
Amos_Web11 小时前
通过 Rspack 源码学 Rust(五):读懂 Result 与问号运算符的错误返回
前端
杨航 AI11 小时前
JEV的用法
java·前端·数据库
Amos_Web11 小时前
Rspack 源码解析(三十五):rspack_error 如何用 miette 渲染带源码定位的错误链
前端
去伪存真11 小时前
高敏资产场景下的大模型协同设计架构
前端·agent
修炼的dance11 小时前
OCR预处理测了108组,纠斜去噪有用,坑在顺序和力度
前端
疯华整猫11 小时前
Android 16 后台常驻适配:用 Trae 搭一套“前台服务 + 加急 Job”的可存活架构
前端