提交 f5abf71d 编写于 作者: 雪洛's avatar 雪洛 提交者: DCloud_LXH

feat: 获取电量支持鸿蒙

上级 911735e0
import batteryInfo from '@ohos.batteryInfo';
import { GetBatteryInfo, GetBatteryInfoOptions, GetBatteryInfoSuccess, GetBatteryInfoResult, GetBatteryInfoSync } from '../interface.uts';
export const getBatteryInfoSync : GetBatteryInfoSync = function () : GetBatteryInfoResult {
return {
level: batteryInfo.batterySOC,
isCharging: batteryInfo.chargingStatus === batteryInfo.BatteryChargeState.ENABLE || batteryInfo.chargingStatus === batteryInfo.BatteryChargeState.FULL,
};
}
export const getBatteryInfo : GetBatteryInfo = function (options : GetBatteryInfoOptions) {
const batteryInfoResult : GetBatteryInfoSuccess = {
errMsg: "getBatteryInfo:ok",
level: batteryInfo.batterySOC,
isCharging: batteryInfo.chargingStatus === batteryInfo.BatteryChargeState.ENABLE || batteryInfo.chargingStatus === batteryInfo.BatteryChargeState.FULL,
}
try {
options.success && options.success(batteryInfoResult)
} catch (e) {
console.error(e)
}
try {
options.complete && options.complete(batteryInfoResult)
} catch (e) {
console.error(e)
}
}
\ No newline at end of file
export type GetBatteryInfoSuccess = { export type GetBatteryInfoSuccess = {
errMsg : string, errMsg: string,
/** /**
* 设备电量,范围1 - 100 * 设备电量,范围1 - 100
*/ */
level : number, level: number,
/** /**
* 是否正在充电中 * 是否正在充电中
*/ */
isCharging : boolean isCharging: boolean
} }
export type GetBatteryInfoOptions = { export type GetBatteryInfoOptions = {
/** /**
* 接口调用结束的回调函数(调用成功、失败都会执行) * 接口调用结束的回调函数(调用成功、失败都会执行)
*/ */
success ?: (res : GetBatteryInfoSuccess) => void success?: (res: GetBatteryInfoSuccess) => void
/** /**
* 接口调用失败的回调函数 * 接口调用失败的回调函数
*/ */
fail ?: (res : UniError) => void fail?: (res: UniError) => void
/** /**
* 接口调用成功的回调 * 接口调用成功的回调
*/ */
complete ?: (res : any) => void complete?: (res: any) => void
} }
export type GetBatteryInfoResult = { export type GetBatteryInfoResult = {
/** /**
* 设备电量,范围1 - 100 * 设备电量,范围1 - 100
*/ */
level : number, level: number,
/** /**
* 是否正在充电中 * 是否正在充电中
*/ */
isCharging : boolean isCharging: boolean
} }
/** /**
* 错误码 * 错误码
* - 1001 getAppContext is null * - 1001 getAppContext is null
*/ */
export type GetBatteryInfoErrorCode = 1001 ; export type GetBatteryInfoErrorCode = 1001 | 1002;
/** /**
* GetBatteryInfo 的错误回调参数 * GetBatteryInfo 的错误回调参数
*/ */
export interface GetBatteryInfoFail extends IUniError { export interface GetBatteryInfoFail extends IUniError {
errCode : GetBatteryInfoErrorCode errCode: GetBatteryInfoErrorCode
}; };
/** /**
...@@ -60,88 +60,88 @@ export interface GetBatteryInfoFail extends IUniError { ...@@ -60,88 +60,88 @@ export interface GetBatteryInfoFail extends IUniError {
* @assert () => success({errCode: 0, errSubject: "uni-getBatteryInfo", errMsg: "getBatteryInfo:ok", level: 60, isCharging: false }) * @assert () => success({errCode: 0, errSubject: "uni-getBatteryInfo", errMsg: "getBatteryInfo:ok", level: 60, isCharging: false })
* @assert () => fail({errCode: 1001, errSubject: "uni-getBatteryInfo", errMsg: "getBatteryInfo:fail getAppContext is null" }) * @assert () => fail({errCode: 1001, errSubject: "uni-getBatteryInfo", errMsg: "getBatteryInfo:fail getAppContext is null" })
*/ */
export type GetBatteryInfo = (options : GetBatteryInfoOptions) => void export type GetBatteryInfo = (options: GetBatteryInfoOptions) => void
export type GetBatteryInfoSync = () => GetBatteryInfoResult export type GetBatteryInfoSync = () => GetBatteryInfoResult
interface Uni { interface Uni {
/** /**
* 获取电池电量信息 * 获取电池电量信息
* *
* @example * @example
* ```typescript * ```typescript
* uni.getBatteryInfo({ * uni.getBatteryInfo({
* success(res) { * success(res) {
* console.log(res); * console.log(res);
* } * }
* }) * })
* ``` * ```
* @remark * @remark
* - 该接口需要同步调用 * - 该接口需要同步调用
* @uniPlatform { * @uniPlatform {
* "app": { * "app": {
* "android": { * "android": {
* "osVer": "4.4.4", * "osVer": "4.4.4",
* "uniVer": "3.6.11", * "uniVer": "3.6.11",
* "unixVer": "3.9.0" * "unixVer": "3.9.0"
* }, * },
* "ios": { * "ios": {
* "osVer": "12.0", * "osVer": "12.0",
* "uniVer": "3.6.11", * "uniVer": "3.6.11",
* "unixVer": "4.11" * "unixVer": "4.11"
* }, * },
* "harmony": { * "harmony": {
* "osVer": "x", * "osVer": "x",
* "uniVer": "x", * "uniVer": "x",
* "unixVer": "x" * "unixVer": "x"
* } * }
* }, * },
* "web": { * "web": {
* "uniVer": "3.6.11", * "uniVer": "3.6.11",
* "unixVer": "4.0" * "unixVer": "4.0"
* } * }
* } * }
* @uniVueVersion 2,3 //支持的vue版本 * @uniVueVersion 2,3 //支持的vue版本
* *
*/ */
getBatteryInfo (options : GetBatteryInfoOptions) : void, getBatteryInfo(options: GetBatteryInfoOptions): void,
/** /**
* 同步获取电池电量信息 * 同步获取电池电量信息
* *
* @example * @example
* ```typescript * ```typescript
* uni.getBatteryInfo() * uni.getBatteryInfo()
* ``` * ```
* @remark * @remark
* - 该接口需要同步调用 * - 该接口需要同步调用
* @uniPlatform { * @uniPlatform {
* "app": { * "app": {
* "android": { * "android": {
* "osVer": "4.4.4", * "osVer": "4.4.4",
* "uniVer": "3.6.11", * "uniVer": "3.6.11",
* "unixVer": "3.9.0" * "unixVer": "3.9.0"
* }, * },
* "ios": { * "ios": {
* "osVer": "12.0", * "osVer": "12.0",
* "uniVer": "3.6.11", * "uniVer": "3.6.11",
* "unixVer": "4.11" * "unixVer": "4.11"
* }, * },
* "harmony": { * "harmony": {
* "osVer": "x", * "osVer": "x",
* "uniVer": "x", * "uniVer": "x",
* "unixVer": "x" * "unixVer": "x"
* } * }
* }, * },
* "web": { * "web": {
* "uniVer": "3.6.11", * "uniVer": "3.6.11",
* "unixVer": "4.0" * "unixVer": "4.0"
* } * }
* } * }
* @uniVueVersion 2,3 //支持的vue版本 * @uniVueVersion 2,3 //支持的vue版本
* *
*/ */
getBatteryInfoSync():GetBatteryInfoResult getBatteryInfoSync(): GetBatteryInfoResult
} }
import { GetBatteryInfoErrorCode, GetBatteryInfoFail } from "./interface.uts" import { GetBatteryInfoErrorCode, GetBatteryInfoFail } from "./interface.uts"
/** /**
* 错误主题 * 错误主题
*/ */
export const UniErrorSubject = 'uni-getBatteryInfo'; export const UniErrorSubject = 'uni-getBatteryInfo';
/** /**
* 错误信息 * 错误信息
* @UniError * @UniError
*/ */
export const UniErrors : Map<GetBatteryInfoErrorCode, string> = new Map([ export const UniErrors : Map<GetBatteryInfoErrorCode, string> = new Map([
/** /**
* 错误码及对应的错误信息 * 错误码及对应的错误信息
*/ */
[1001, 'getBatteryInfo:fail getAppContext is null'], [1001, 'getBatteryInfo:fail getAppContext is null'],
]); [1002, 'getBatteryInfo:fail not support'],
]);
/**
* 错误对象实现 /**
*/ * 错误对象实现
export class GetBatteryInfoFailImpl extends UniError implements GetBatteryInfoFail { */
export class GetBatteryInfoFailImpl extends UniError implements GetBatteryInfoFail {
/** override errCode : GetBatteryInfoErrorCode;
* 错误对象构造函数 /**
*/ * 错误对象构造函数
constructor(errCode : GetBatteryInfoErrorCode) { */
super(); constructor(errCode : GetBatteryInfoErrorCode) {
this.errSubject = UniErrorSubject; super();
this.errCode = errCode; this.errSubject = UniErrorSubject;
this.errMsg = UniErrors[errCode] ?? ""; this.errCode = errCode;
} this.errMsg = UniErrors[errCode] ?? "";
} }
\ No newline at end of file }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册