Skip to content

useBattery

监控设备电池状态,包括电量、充电状态和剩余时间。

前置依赖

依赖参数

参数名类型说明
deps.vue.ref<T>(value: T) => Ref<T>Vue ref 函数
deps.vue.onMounted(fn: () => void) => voidVue onMounted 钩子
deps.vue.onUnmounted(fn: () => void) => voidVue onUnmounted 钩子
deps.navigatorNavigatorNavigator API

环境要求

浏览器 API: Battery Status API

注意:部分浏览器已弃用此 API,建议使用 Chrome 或 Edge 浏览器测试。

函数签名

typescript
function useBattery(
  deps: UseBatteryDeps
): UseBatteryReturn

interface UseBatteryDeps {
  vue: VueCompositionAPI
  navigator: Navigator
}

interface UseBatteryReturn {
  isSupported: Ref<boolean>
  charging: Ref<boolean>
  chargingTime: Ref<number>
  dischargingTime: Ref<number>
  level: Ref<number>
  error: Ref<string | null>
}

参数

参数名类型必填说明
depsUseBatteryDeps依赖注入对象

返回值

属性类型说明
isSupportedRef<boolean>是否支持电池 API
chargingRef<boolean>是否正在充电
chargingTimeRef<number>充满电所需时间(秒,Infinity 表示不适用)
dischargingTimeRef<number>剩余使用时间(秒,Infinity 表示不适用)
levelRef<number>电量百分比 (0-1)
errorRef<string | null>错误信息

工作原理

  1. 检查浏览器是否支持电池 API(navigator.getBattery
  2. 在组件挂载时获取电池管理器
  3. 监听充电状态、电量、充电时间、放电时间的变化事件
  4. 实时更新响应式状态
  5. 组件卸载时移除所有事件监听器

电池状态会自动更新,无需手动刷新。可用于:

  • 显示电量提醒
  • 在低电量时优化应用性能
  • 提示用户充电