文档/PowerSDK
通用开发

PowerSDK

PowerSDK

概述

PowerSDK 用来给插件读取当前省电状态,方便在低电量场景下自动降级高耗能能力。

快速开始

EXAMPLE.TYPESCRIPT
import { usePowerSDK } from '@talex-touch/utils/plugin/sdk'

const power = usePowerSDK()

const status = await power.getLowPowerStatus()
if (status.lowPower) {
  console.log('切换到轻量模式')
}

API 参考

usePowerSDK()

在插件渲染上下文中获取 PowerSDK 实例。

getLowPowerStatus(options?)

获取当前省电状态。

参数

  • threshold?: number(默认 20,范围 1-100

返回值

字段类型说明
lowPowerboolean当前是否处于省电模式
onBatteryboolean当前是否为电池供电
percentnumber | null电量百分比,不可用时为 null
thresholdnumber本次计算使用的阈值

isLowPower(options?)

便捷方法,等价于 getLowPowerStatus(options).lowPower

onLowPowerChanged(callback, options?)

监听省电状态变化。

参数

  • threshold?: number(默认 20
  • emitImmediately?: boolean(默认 true

返回取消监听函数。

EXAMPLE.TYPESCRIPT
const dispose = power.onLowPowerChanged((status) => {
  console.log('省电状态变化', status)
})

// 后续取消监听
dispose()

index.js 全局上下文

插件 index.js 中可直接使用 globalThis.power

EXAMPLE.JAVASCRIPT
const status = await power.getLowPowerStatus({ threshold: 25 })
if (status.lowPower) {
  logger.info('低电量时跳过高负载任务')
}

技术说明

  • 在插件渲染上下文里,usePowerSDK().onLowPowerChanged 走 transport 电量事件回调。
  • 在插件 index.js 全局上下文(globalThis.power)里,onLowPowerChanged 当前是轮询策略(约 60 秒),不是严格实时推送。

最佳实践

  1. lowPowertrue 时暂停高耗能后台任务。
  2. percentnull 时提供可接受的兜底策略。
  3. OCR/AI 等重任务建议使用更高阈值(例如 25)。