Initial commit
This commit is contained in:
14
uni_modules/uni-getbatteryinfo/changelog.md
Normal file
14
uni_modules/uni-getbatteryinfo/changelog.md
Normal file
@@ -0,0 +1,14 @@
|
||||
## 1.3.1(2023-09-15)
|
||||
app端适配使用UniError
|
||||
|
||||
## 1.3.0(2023-05-30)
|
||||
新增 同步获取电量api
|
||||
|
||||
## 1.2.0(2022-10-17)
|
||||
实现百度小程序/支付宝小程序/QQ小程序获取电量
|
||||
|
||||
## 1.1.0(2022-10-17)
|
||||
实现ios平台获取电量
|
||||
|
||||
## 1.0.0(2022-09-01)
|
||||
实现android/web/微信小程序平台获取电量
|
||||
93
uni_modules/uni-getbatteryinfo/package.json
Normal file
93
uni_modules/uni-getbatteryinfo/package.json
Normal file
@@ -0,0 +1,93 @@
|
||||
{
|
||||
"id": "uni-getbatteryinfo",
|
||||
"displayName": "uni-getbatteryinfo",
|
||||
"version": "1.3.1",
|
||||
"description": "使用uts开发,实现在多个平台获取电池电量功能",
|
||||
"keywords": [
|
||||
"battery"
|
||||
],
|
||||
"repository": "",
|
||||
"engines": {
|
||||
"HBuilderX": "^3.9.0"
|
||||
},
|
||||
"dcloudext": {
|
||||
"type": "uts",
|
||||
"sale": {
|
||||
"regular": {
|
||||
"price": "0.00"
|
||||
},
|
||||
"sourcecode": {
|
||||
"price": "0.00"
|
||||
}
|
||||
},
|
||||
"contact": {
|
||||
"qq": ""
|
||||
},
|
||||
"declaration": {
|
||||
"ads": "无",
|
||||
"data": "插件不采集任何数据",
|
||||
"permissions": "无"
|
||||
},
|
||||
"npmurl": ""
|
||||
},
|
||||
"uni_modules": {
|
||||
"uni-ext-api": {
|
||||
"uni": {
|
||||
"getBatteryInfo": "getBatteryInfo",
|
||||
"getBatteryInfoSync": {
|
||||
"web": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": [],
|
||||
"encrypt": [],
|
||||
"platforms": {
|
||||
"cloud": {
|
||||
"tcb": "y",
|
||||
"aliyun": "y"
|
||||
},
|
||||
"client": {
|
||||
"Vue": {
|
||||
"vue2": "n",
|
||||
"vue3": "y"
|
||||
},
|
||||
"App": {
|
||||
"app-android": {
|
||||
"minVersion": "21"
|
||||
},
|
||||
"app-ios": {
|
||||
"minVersion": "9"
|
||||
}
|
||||
},
|
||||
"H5-mobile": {
|
||||
"Safari": "y",
|
||||
"Android Browser": "y",
|
||||
"微信浏览器(Android)": "y",
|
||||
"QQ浏览器(Android)": "y"
|
||||
},
|
||||
"H5-pc": {
|
||||
"Chrome": "y",
|
||||
"IE": "y",
|
||||
"Edge": "y",
|
||||
"Firefox": "y",
|
||||
"Safari": "y"
|
||||
},
|
||||
"小程序": {
|
||||
"微信": "y",
|
||||
"阿里": "y",
|
||||
"百度": "y",
|
||||
"字节跳动": "u",
|
||||
"QQ": "y",
|
||||
"钉钉": "u",
|
||||
"快手": "u",
|
||||
"飞书": "u",
|
||||
"京东": "u"
|
||||
},
|
||||
"快应用": {
|
||||
"华为": "u",
|
||||
"联盟": "u"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
38
uni_modules/uni-getbatteryinfo/readme.md
Normal file
38
uni_modules/uni-getbatteryinfo/readme.md
Normal file
@@ -0,0 +1,38 @@
|
||||
# uni-getbatteryinfo
|
||||
|
||||
## 使用文档
|
||||
|
||||
```ts
|
||||
// 获取电量信息
|
||||
uni.getBatteryInfo({
|
||||
success(res) {
|
||||
console.log(res);
|
||||
uni.showToast({
|
||||
title: "当前电量:" + res.level + '%',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 参数
|
||||
|
||||
Object object
|
||||
|
||||
|属性|类型|必填|说明|
|
||||
|----|---|----|----|
|
||||
|success|function|否|接口调用成功的回调函数|
|
||||
|fail|function|否|接口调用失败的回调函数|
|
||||
|complete|function|否|接口调用结束的回调函数(调用成功、失败都会执行)|
|
||||
|
||||
|
||||
|
||||
object.success 回调函数
|
||||
|
||||
|
||||
|属性|类型|说明|
|
||||
|----|---|----|
|
||||
|level|number|设备电量,范围 1 - 100|
|
||||
|isCharging|boolean|是否正在充电中|
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"minSdkVersion": "21"
|
||||
}
|
||||
76
uni_modules/uni-getbatteryinfo/utssdk/app-android/index.uts
Normal file
76
uni_modules/uni-getbatteryinfo/utssdk/app-android/index.uts
Normal file
@@ -0,0 +1,76 @@
|
||||
import Context from "android.content.Context";
|
||||
import BatteryManager from "android.os.BatteryManager";
|
||||
|
||||
import { GetBatteryInfo, GetBatteryInfoOptions, GetBatteryInfoSuccess, GetBatteryInfoResult, GetBatteryInfoSync } from '../interface.uts'
|
||||
import IntentFilter from 'android.content.IntentFilter';
|
||||
import Intent from 'android.content.Intent';
|
||||
|
||||
import { GetBatteryInfoFailImpl } from '../unierror';
|
||||
|
||||
/**
|
||||
* 异步获取电量
|
||||
*/
|
||||
export const getBatteryInfo : GetBatteryInfo = function (options : GetBatteryInfoOptions) {
|
||||
const context = UTSAndroid.getAppContext();
|
||||
if (context != null) {
|
||||
const manager = context.getSystemService(
|
||||
Context.BATTERY_SERVICE
|
||||
) as BatteryManager;
|
||||
const level = manager.getIntProperty(
|
||||
BatteryManager.BATTERY_PROPERTY_CAPACITY
|
||||
);
|
||||
|
||||
let ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
|
||||
let batteryStatus = context.registerReceiver(null, ifilter);
|
||||
let status = batteryStatus?.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
|
||||
let isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || status == BatteryManager.BATTERY_STATUS_FULL;
|
||||
|
||||
const res : GetBatteryInfoSuccess = {
|
||||
errMsg: 'getBatteryInfo:ok',
|
||||
level,
|
||||
isCharging: isCharging
|
||||
}
|
||||
options.success?.(res)
|
||||
options.complete?.(res)
|
||||
} else {
|
||||
let res = new GetBatteryInfoFailImpl(1001);
|
||||
options.fail?.(res)
|
||||
options.complete?.(res)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步获取电量
|
||||
*/
|
||||
export const getBatteryInfoSync : GetBatteryInfoSync = function () : GetBatteryInfoResult {
|
||||
const context = UTSAndroid.getAppContext();
|
||||
if (context != null) {
|
||||
const manager = context.getSystemService(
|
||||
Context.BATTERY_SERVICE
|
||||
) as BatteryManager;
|
||||
const level = manager.getIntProperty(
|
||||
BatteryManager.BATTERY_PROPERTY_CAPACITY
|
||||
);
|
||||
|
||||
let ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
|
||||
let batteryStatus = context.registerReceiver(null, ifilter);
|
||||
let status = batteryStatus?.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
|
||||
let isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || status == BatteryManager.BATTERY_STATUS_FULL;
|
||||
|
||||
const res : GetBatteryInfoResult = {
|
||||
level: level,
|
||||
isCharging: isCharging
|
||||
};
|
||||
return res;
|
||||
}
|
||||
else {
|
||||
/**
|
||||
* 无有效上下文
|
||||
*/
|
||||
const res : GetBatteryInfoResult = {
|
||||
level: -1,
|
||||
isCharging: false
|
||||
};
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"deploymentTarget": "9"
|
||||
}
|
||||
36
uni_modules/uni-getbatteryinfo/utssdk/app-ios/index.uts
Normal file
36
uni_modules/uni-getbatteryinfo/utssdk/app-ios/index.uts
Normal file
@@ -0,0 +1,36 @@
|
||||
// 引用 iOS 原生平台 api
|
||||
import { UIDevice } from "UIKit";
|
||||
|
||||
import { GetBatteryInfo, GetBatteryInfoSuccess, GetBatteryInfoResult, GetBatteryInfoSync } from '../interface.uts';
|
||||
|
||||
/**
|
||||
* 异步获取电量
|
||||
*/
|
||||
export const getBatteryInfo : GetBatteryInfo = function (options) {
|
||||
// 开启电量检测
|
||||
UIDevice.current.isBatteryMonitoringEnabled = true
|
||||
|
||||
// 返回数据
|
||||
const res : GetBatteryInfoSuccess = {
|
||||
errMsg: "getBatteryInfo:ok",
|
||||
level: Math.abs(Number(UIDevice.current.batteryLevel * 100)),
|
||||
isCharging: UIDevice.current.batteryState == UIDevice.BatteryState.charging,
|
||||
};
|
||||
options.success?.(res);
|
||||
options.complete?.(res);
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步获取电量
|
||||
*/
|
||||
export const getBatteryInfoSync : GetBatteryInfoSync = function () : GetBatteryInfoResult {
|
||||
// 开启电量检测
|
||||
UIDevice.current.isBatteryMonitoringEnabled = true
|
||||
|
||||
// 返回数据
|
||||
const res : GetBatteryInfoResult = {
|
||||
level: Math.abs(Number(UIDevice.current.batteryLevel * 100)),
|
||||
isCharging: UIDevice.current.batteryState == UIDevice.BatteryState.charging,
|
||||
};
|
||||
return res;
|
||||
}
|
||||
43
uni_modules/uni-getbatteryinfo/utssdk/index.d.ts
vendored
Normal file
43
uni_modules/uni-getbatteryinfo/utssdk/index.d.ts
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
declare namespace UniNamespace {
|
||||
interface GetBatteryInfoSuccessCallbackResult {
|
||||
/**
|
||||
* 是否正在充电中
|
||||
*/
|
||||
isCharging: boolean;
|
||||
/**
|
||||
* 设备电量,范围 1 - 100
|
||||
*/
|
||||
level: number;
|
||||
errMsg: string;
|
||||
}
|
||||
|
||||
interface GetBatteryInfoOption {
|
||||
/**
|
||||
* 接口调用结束的回调函数(调用成功、失败都会执行)
|
||||
*/
|
||||
complete?: Function
|
||||
/**
|
||||
* 接口调用失败的回调函数
|
||||
*/
|
||||
fail?: Function
|
||||
/**
|
||||
* 接口调用成功的回调函数
|
||||
*/
|
||||
success?: (result: GetBatteryInfoSuccessCallbackResult) => void
|
||||
}
|
||||
}
|
||||
|
||||
declare interface Uni {
|
||||
/**
|
||||
* 获取设备电量
|
||||
*
|
||||
* @tutorial https://uniapp.dcloud.net.cn/api/system/batteryInfo.html
|
||||
*/
|
||||
getBatteryInfo(option?: UniNamespace.GetBatteryInfoOption): void;
|
||||
|
||||
/**
|
||||
* 同步获取电池电量信息
|
||||
* @tutorial https://uniapp.dcloud.net.cn/api/system/batteryInfo.html
|
||||
*/
|
||||
getBatteryInfoSync(): UniNamespace.GetBatteryInfoSuccessCallbackResult;
|
||||
}
|
||||
138
uni_modules/uni-getbatteryinfo/utssdk/interface.uts
Normal file
138
uni_modules/uni-getbatteryinfo/utssdk/interface.uts
Normal file
@@ -0,0 +1,138 @@
|
||||
export type GetBatteryInfoSuccess = {
|
||||
errMsg : string,
|
||||
/**
|
||||
* 设备电量,范围1 - 100
|
||||
*/
|
||||
level : number,
|
||||
/**
|
||||
* 是否正在充电中
|
||||
*/
|
||||
isCharging : boolean
|
||||
}
|
||||
|
||||
export type GetBatteryInfoOptions = {
|
||||
/**
|
||||
* 接口调用结束的回调函数(调用成功、失败都会执行)
|
||||
*/
|
||||
success ?: (res : GetBatteryInfoSuccess) => void
|
||||
/**
|
||||
* 接口调用失败的回调函数
|
||||
*/
|
||||
fail ?: (res : UniError) => void
|
||||
/**
|
||||
* 接口调用成功的回调
|
||||
*/
|
||||
complete ?: (res : any) => void
|
||||
}
|
||||
|
||||
export type GetBatteryInfoResult = {
|
||||
/**
|
||||
* 设备电量,范围1 - 100
|
||||
*/
|
||||
level : number,
|
||||
/**
|
||||
* 是否正在充电中
|
||||
*/
|
||||
isCharging : boolean
|
||||
}
|
||||
|
||||
/**
|
||||
* 错误码
|
||||
* - 1001 getAppContext is null
|
||||
*/
|
||||
export type GetBatteryInfoErrorCode = 1001 ;
|
||||
/**
|
||||
* GetBatteryInfo 的错误回调参数
|
||||
*/
|
||||
export interface GetBatteryInfoFail extends IUniError {
|
||||
errCode : GetBatteryInfoErrorCode
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取电量信息
|
||||
* @param {GetBatteryInfoOptions} options
|
||||
*
|
||||
*
|
||||
* @tutorial https://uniapp.dcloud.net.cn/api/system/batteryInfo.html
|
||||
* @platforms APP-IOS = ^9.0,APP-ANDROID = ^22
|
||||
* @since 3.6.11
|
||||
*
|
||||
* @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" })
|
||||
*/
|
||||
export type GetBatteryInfo = (options : GetBatteryInfoOptions) => void
|
||||
|
||||
|
||||
export type GetBatteryInfoSync = () => GetBatteryInfoResult
|
||||
|
||||
interface Uni {
|
||||
|
||||
/**
|
||||
* 获取电池电量信息
|
||||
* @description 获取电池电量信息
|
||||
* @param {GetBatteryInfoOptions} options
|
||||
* @example
|
||||
* ```typescript
|
||||
* uni.getBatteryInfo({
|
||||
* success(res) {
|
||||
* console.log(res);
|
||||
* }
|
||||
* })
|
||||
* ```
|
||||
* @remark
|
||||
* - 该接口需要同步调用
|
||||
* @uniPlatform {
|
||||
* "app": {
|
||||
* "android": {
|
||||
* "osVer": "4.4.4",
|
||||
* "uniVer": "3.6.11",
|
||||
* "unixVer": "3.9.0"
|
||||
* },
|
||||
* "ios": {
|
||||
* "osVer": "12.0",
|
||||
* "uniVer": "3.6.11",
|
||||
* "unixVer": "4.11"
|
||||
* }
|
||||
* },
|
||||
* "web": {
|
||||
* "uniVer": "3.6.11",
|
||||
* "unixVer": "4.0"
|
||||
* }
|
||||
* }
|
||||
* @uniVueVersion 2,3 //支持的vue版本
|
||||
*
|
||||
*/
|
||||
getBatteryInfo (options : GetBatteryInfoOptions) : void,
|
||||
/**
|
||||
* 同步获取电池电量信息
|
||||
* @description 获取电池电量信息
|
||||
* @example
|
||||
* ```typescript
|
||||
* uni.getBatteryInfo()
|
||||
* ```
|
||||
* @remark
|
||||
* - 该接口需要同步调用
|
||||
* @uniPlatform {
|
||||
* "app": {
|
||||
* "android": {
|
||||
* "osVer": "4.4.4",
|
||||
* "uniVer": "3.6.11",
|
||||
* "unixVer": "3.9.0"
|
||||
* },
|
||||
* "ios": {
|
||||
* "osVer": "12.0",
|
||||
* "uniVer": "3.6.11",
|
||||
* "unixVer": "4.11"
|
||||
* }
|
||||
* },
|
||||
* "web": {
|
||||
* "uniVer": "3.6.11",
|
||||
* "unixVer": "4.0"
|
||||
* }
|
||||
* }
|
||||
* @uniVueVersion 2,3 //支持的vue版本
|
||||
*
|
||||
*/
|
||||
getBatteryInfoSync():GetBatteryInfoResult
|
||||
|
||||
}
|
||||
6
uni_modules/uni-getbatteryinfo/utssdk/mp-alipay/index.js
Normal file
6
uni_modules/uni-getbatteryinfo/utssdk/mp-alipay/index.js
Normal file
@@ -0,0 +1,6 @@
|
||||
export function getBatteryInfo(options) {
|
||||
return my.getBatteryInfo(options)
|
||||
}
|
||||
export function getBatteryInfoSync(options) {
|
||||
return my.getBatteryInfoSync(options)
|
||||
}
|
||||
6
uni_modules/uni-getbatteryinfo/utssdk/mp-baidu/index.js
Normal file
6
uni_modules/uni-getbatteryinfo/utssdk/mp-baidu/index.js
Normal file
@@ -0,0 +1,6 @@
|
||||
export function getBatteryInfo(options) {
|
||||
return swan.getBatteryInfo(options)
|
||||
}
|
||||
export function getBatteryInfoSync(options) {
|
||||
return swan.getBatteryInfoSync(options)
|
||||
}
|
||||
6
uni_modules/uni-getbatteryinfo/utssdk/mp-qq/index.js
Normal file
6
uni_modules/uni-getbatteryinfo/utssdk/mp-qq/index.js
Normal file
@@ -0,0 +1,6 @@
|
||||
export function getBatteryInfo(options) {
|
||||
return qq.getBatteryInfo(options)
|
||||
}
|
||||
export function getBatteryInfoSync(options) {
|
||||
return qq.getBatteryInfoSync(options)
|
||||
}
|
||||
6
uni_modules/uni-getbatteryinfo/utssdk/mp-weixin/index.js
Normal file
6
uni_modules/uni-getbatteryinfo/utssdk/mp-weixin/index.js
Normal file
@@ -0,0 +1,6 @@
|
||||
export function getBatteryInfo(options) {
|
||||
return wx.getBatteryInfo(options)
|
||||
}
|
||||
export function getBatteryInfoSync(options) {
|
||||
return wx.getBatteryInfoSync(options)
|
||||
}
|
||||
34
uni_modules/uni-getbatteryinfo/utssdk/unierror.uts
Normal file
34
uni_modules/uni-getbatteryinfo/utssdk/unierror.uts
Normal file
@@ -0,0 +1,34 @@
|
||||
import { GetBatteryInfoErrorCode, GetBatteryInfoFail } from "./interface.uts"
|
||||
/**
|
||||
* 错误主题
|
||||
*/
|
||||
export const UniErrorSubject = 'uni-getBatteryInfo';
|
||||
|
||||
|
||||
/**
|
||||
* 错误信息
|
||||
* @UniError
|
||||
*/
|
||||
export const UniErrors : Map<GetBatteryInfoErrorCode, string> = new Map([
|
||||
/**
|
||||
* 错误码及对应的错误信息
|
||||
*/
|
||||
[1001, 'getBatteryInfo:fail getAppContext is null'],
|
||||
]);
|
||||
|
||||
|
||||
/**
|
||||
* 错误对象实现
|
||||
*/
|
||||
export class GetBatteryInfoFailImpl extends UniError implements GetBatteryInfoFail {
|
||||
|
||||
/**
|
||||
* 错误对象构造函数
|
||||
*/
|
||||
constructor(errCode : GetBatteryInfoErrorCode) {
|
||||
super();
|
||||
this.errSubject = UniErrorSubject;
|
||||
this.errCode = errCode;
|
||||
this.errMsg = UniErrors[errCode] ?? "";
|
||||
}
|
||||
}
|
||||
20
uni_modules/uni-getbatteryinfo/utssdk/web/index.uts
Normal file
20
uni_modules/uni-getbatteryinfo/utssdk/web/index.uts
Normal file
@@ -0,0 +1,20 @@
|
||||
import { GetBatteryInfo, GetBatteryInfoOptions, GetBatteryInfoSuccess } from '../interface.uts'
|
||||
export const getBatteryInfo : GetBatteryInfo = function (options : GetBatteryInfoOptions) {
|
||||
if (navigator.getBattery) {
|
||||
navigator.getBattery().then(battery => {
|
||||
const res = {
|
||||
errCode: 0,
|
||||
errSubject: "uni-getBatteryInfo",
|
||||
errMsg: 'getBatteryInfo:ok',
|
||||
level: battery.level * 100,
|
||||
isCharging: battery.charging
|
||||
} as GetBatteryInfoSuccess
|
||||
options.success && options.success(res)
|
||||
options.complete && options.complete(res)
|
||||
})
|
||||
} else {
|
||||
const res = new UniError("uni-getBatteryInfo", 1002, "getBatteryInfo:fail navigator.getBattery is unsupported")
|
||||
options.fail && options.fail(res)
|
||||
options.complete && options.complete(res)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user