前端也能获取电池信息,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);
  });
  
  // ...其他事件监听
})

兼容性

相关推荐
funnycoffee1236 分钟前
F5 Big IP如何设置web和SSH登录的白名单
前端·tcp/ip·ssh
北辰alk13 分钟前
Vue 数据响应式探秘:如何让数组变化无所遁形?
vue.js
JarvanMo14 分钟前
国产 App,求你放过我的 iPhone 电量吧!
前端
先飞的笨鸟18 分钟前
2026 年 Expo + React Native 项目接入微信分享完整指南
前端·ios·app
angelQ20 分钟前
Vercel部署:前后端分离项目的整体部署流程及问题排查
前端·javascript
AI前端老薛20 分钟前
CSS实现动画的几种方式
前端·css
晨米酱22 分钟前
轻量级 Git Hooks 管理工具 Husky
前端·代码规范
Jing_Rainbow23 分钟前
【 前端三剑客-35 /Lesson58(2025-12-08)】JavaScript 原型继承与对象创建机制详解🧬
前端·javascript·面试
携欢23 分钟前
portswigger靶场之修改序列化数据类型通关秘籍
android·前端·网络·安全
San3023 分钟前
告别全局污染:深入解析现代前端的模块化 CSS 演进之路
css·vue.js·react.js