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

兼容性

相关推荐
触底反弹34 分钟前
🔥 前端也能玩转 AI 流式输出!从二进制流到打字机效果,一篇讲透
javascript·人工智能·node.js
胡萝卜术43 分钟前
深度重构:Agent Skills——从 Prompt 工程到能力工程
javascript·架构·github
海上彼尚2 小时前
Nodejs也能写Agent - 16.LangGraph篇 - 条件分支与循环
前端·后端·langchain·node.js
To_OC3 小时前
从 “卡死半天” 到 “打字机效果”:大模型流式输出前端实现全记录
前端·javascript·llm
rockey6273 小时前
基于AScript的JavaScript脚本语言发布啦
javascript·c#·.net·js·script
SoaringHeart3 小时前
Flutter最佳实践:键盘辅助视图输入框天添加图片附件
前端·flutter
kyriewen4 小时前
我看完这篇安全论文——AI推荐的npm包,92%是编出来的
前端·javascript·ai编程
心中有国也有家5 小时前
AtomGit Flutter 鸿蒙客户端:Canvas 绘制进阶-路径、渐变与混合模式
android·javascript·flutter·华为·harmonyos
小心我捶你啊5 小时前
数据采集和Web解锁不是一回事,从用途到规则区分
前端·爬虫·网络协议