提交 6a60bffc 编写于 作者: D DCloud_LXH

Merge branch 'alpha'

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,7 +60,7 @@ export interface GetBatteryInfoFail extends IUniError { ...@@ -60,7 +60,7 @@ 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
...@@ -93,8 +93,8 @@ interface Uni { ...@@ -93,8 +93,8 @@ interface Uni {
* "unixVer": "4.11" * "unixVer": "4.11"
* }, * },
* "harmony": { * "harmony": {
* "osVer": "x", * "osVer": "3.0",
* "uniVer": "x", * "uniVer": "4.23",
* "unixVer": "x" * "unixVer": "x"
* } * }
* }, * },
...@@ -106,7 +106,7 @@ interface Uni { ...@@ -106,7 +106,7 @@ interface Uni {
* @uniVueVersion 2,3 //支持的vue版本 * @uniVueVersion 2,3 //支持的vue版本
* *
*/ */
getBatteryInfo (options : GetBatteryInfoOptions) : void, getBatteryInfo(options: GetBatteryInfoOptions): void,
/** /**
* 同步获取电池电量信息 * 同步获取电池电量信息
* *
...@@ -129,8 +129,8 @@ interface Uni { ...@@ -129,8 +129,8 @@ interface Uni {
* "unixVer": "4.11" * "unixVer": "4.11"
* }, * },
* "harmony": { * "harmony": {
* "osVer": "x", * "osVer": "3.0",
* "uniVer": "x", * "uniVer": "4.23",
* "unixVer": "x" * "unixVer": "x"
* } * }
* }, * },
...@@ -142,6 +142,6 @@ interface Uni { ...@@ -142,6 +142,6 @@ interface Uni {
* @uniVueVersion 2,3 //支持的vue版本 * @uniVueVersion 2,3 //支持的vue版本
* *
*/ */
getBatteryInfoSync():GetBatteryInfoResult getBatteryInfoSync(): GetBatteryInfoResult
} }
...@@ -14,6 +14,7 @@ export const UniErrors : Map<GetBatteryInfoErrorCode, string> = new Map([ ...@@ -14,6 +14,7 @@ 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'],
]); ]);
...@@ -21,7 +22,7 @@ export const UniErrors : Map<GetBatteryInfoErrorCode, string> = new Map([ ...@@ -21,7 +22,7 @@ export const UniErrors : Map<GetBatteryInfoErrorCode, string> = new Map([
* 错误对象实现 * 错误对象实现
*/ */
export class GetBatteryInfoFailImpl extends UniError implements GetBatteryInfoFail { export class GetBatteryInfoFailImpl extends UniError implements GetBatteryInfoFail {
override errCode : GetBatteryInfoErrorCode;
/** /**
* 错误对象构造函数 * 错误对象构造函数
*/ */
......
import { display } from '@kit.ArkUI';
import { window } from '@kit.ArkUI';
import { Callback, BusinessError } from '@kit.BasicServicesKit';
import { getAbilityContext, UTSHarmony } from '@dcloudio/uni-runtime';
import {
OnUserCaptureScreen, UserCaptureScreenCallback,
OffUserCaptureScreen,
SetUserCaptureScreen, SetUserCaptureScreenOptions, SetUserCaptureScreenSuccess
} from '../interface.uts';
const onUserCaptureScreenCallbacks: Function[] = []
const harmonyCaptureStatusChange: Callback<boolean> = (captureStatus: boolean) => {
if (captureStatus) {
onUserCaptureScreenCallbacks.forEach(cb => {
typeof cb === 'function' && cb()
})
}
}
display.on('captureStatusChange', harmonyCaptureStatusChange)
export const onUserCaptureScreen: OnUserCaptureScreen = function (callback: UserCaptureScreenCallback | null) {
if (callback) {
onUserCaptureScreenCallbacks.push(callback)
}
}
export const offUserCaptureScreen: OffUserCaptureScreen = function (callback: UserCaptureScreenCallback | null) {
if (callback) {
const index = onUserCaptureScreenCallbacks.indexOf(callback)
if (index > -1) {
onUserCaptureScreenCallbacks.splice(index, 1)
}
}
}
export const setUserCaptureScreen: SetUserCaptureScreen = function (options: SetUserCaptureScreenOptions) {
const errSubject = 'uni-usercapturescreen'
const setUserCaptureScreenSuccess: SetUserCaptureScreenSuccess = {}
window.getLastWindow(getAbilityContext()!, (err, window) => {
const errCode: number = err.code;
if (errCode) {
options.fail?.({
errCode: (err as BusinessError).code,
errSubject,
errMsg: `setUserCaptureScreen:fail ${(err as BusinessError).message}`
} as IUniError)
options.complete?.(setUserCaptureScreenSuccess);
return;
} else {
try {
UTSHarmony.requestSystemPermission(['ohos.permission.PRIVACY_WINDOW'], (allRight: boolean) => {
if (allRight) {
window.setWindowPrivacyMode(!options.enable, (err: BusinessError) => {
const errCode: number = err.code;
if (errCode) {
options.fail?.({
errCode: err.code,
errSubject,
errMsg: `setUserCaptureScreen:fail ${err.message}`
} as IUniError)
options.complete?.(setUserCaptureScreenSuccess);
return;
}
options.success?.(setUserCaptureScreenSuccess);
options.complete?.(setUserCaptureScreenSuccess);
});
} else {
throw new Error('permission denied')
}
}, () => {
throw new Error('permission denied')
})
} catch (err) {
options.fail?.({
errCode: (err as BusinessError).code,
errSubject,
errMsg: `setUserCaptureScreen:fail ${(err as BusinessError).message}`
} as IUniError)
options.complete?.(setUserCaptureScreenSuccess);
}
}
})
}
/** /**
* uni.onUserCaptureScreen/uni.offUserCaptureScreen回调参数 * uni.onUserCaptureScreen/uni.offUserCaptureScreen回调参数
*/ */
export type OnUserCaptureScreenCallbackResult = { export type OnUserCaptureScreenCallbackResult = {
/** /**
* 截屏文件路径(仅Android返回) * 截屏文件路径(仅Android返回)
*/ */
path ?: string path ?: string
} }
/** /**
* uni.onUserCaptureScreen/uni.offUserCaptureScreen回调函数定义 * uni.onUserCaptureScreen/uni.offUserCaptureScreen回调函数定义
*/ */
export type UserCaptureScreenCallback = (res : OnUserCaptureScreenCallbackResult) => void export type UserCaptureScreenCallback = (res : OnUserCaptureScreenCallbackResult) => void
export type OnUserCaptureScreen = (callback : UserCaptureScreenCallback | null) => void export type OnUserCaptureScreen = (callback : UserCaptureScreenCallback | null) => void
export type OffUserCaptureScreen = (callback : UserCaptureScreenCallback | null) => void export type OffUserCaptureScreen = (callback : UserCaptureScreenCallback | null) => void
/** /**
* uni.setUserCaptureScreen成功回调参数 * uni.setUserCaptureScreen成功回调参数
*/ */
export type SetUserCaptureScreenSuccess = { export type SetUserCaptureScreenSuccess = {
} }
/** /**
* uni.setUserCaptureScreen成功回调函数定义 * uni.setUserCaptureScreen成功回调函数定义
*/ */
export type SetUserCaptureScreenSuccessCallback = (res : SetUserCaptureScreenSuccess) => void export type SetUserCaptureScreenSuccessCallback = (res : SetUserCaptureScreenSuccess) => void
/** /**
* uni.setUserCaptureScreen失败回调函数定义 * uni.setUserCaptureScreen失败回调函数定义
*/ */
export type SetUserCaptureScreenFailCallback = (res : UniError) => void export type SetUserCaptureScreenFailCallback = (res : IUniError) => void
/** /**
* uni.setUserCaptureScreen完成回调函数定义 * uni.setUserCaptureScreen完成回调函数定义
*/ */
export type SetUserCaptureScreenCompleteCallback = (res : any) => void export type SetUserCaptureScreenCompleteCallback = (res : any) => void
/** /**
* uni.setUserCaptureScreen参数 * uni.setUserCaptureScreen参数
*/ */
export type SetUserCaptureScreenOptions = { export type SetUserCaptureScreenOptions = {
/** /**
* true: 允许用户截屏 false: 不允许用户截屏,防止用户截屏到应用页面内容 * true: 允许用户截屏 false: 不允许用户截屏,防止用户截屏到应用页面内容
*/ */
...@@ -63,24 +63,24 @@ export type SetUserCaptureScreenOptions = { ...@@ -63,24 +63,24 @@ export type SetUserCaptureScreenOptions = {
*/ */
// complete : SetUserCaptureScreenSuccessCallback | SetUserCaptureScreenFailCallback | null // complete : SetUserCaptureScreenSuccessCallback | SetUserCaptureScreenFailCallback | null
complete ?: SetUserCaptureScreenCompleteCallback complete ?: SetUserCaptureScreenCompleteCallback
} }
/** /**
* 错误码 * 错误码
* - 12001 "setUserCaptureScreen:system not support" * - 12001 "setUserCaptureScreen:system not support"
* - 12010 "setUserCaptureScreen:system internal error" * - 12010 "setUserCaptureScreen:system internal error"
*/ */
export type SetUserCaptureScreenErrorCode = 12001 | 12010; export type SetUserCaptureScreenErrorCode = 12001 | 12010;
/** /**
* SetUserCaptureScreen 的错误回调参数 * SetUserCaptureScreen 的错误回调参数
*/ */
export interface SetUserCaptureScreenFail extends IUniError { export interface SetUserCaptureScreenFail extends IUniError {
errCode : SetUserCaptureScreenErrorCode errCode : SetUserCaptureScreenErrorCode
}; };
export type SetUserCaptureScreen = (options : SetUserCaptureScreenOptions) => void export type SetUserCaptureScreen = (options : SetUserCaptureScreenOptions) => void
export interface Uni { export interface Uni {
/** /**
* 开启截屏监听 * 开启截屏监听
* *
...@@ -99,8 +99,8 @@ export interface Uni { ...@@ -99,8 +99,8 @@ export interface Uni {
* "unixVer": "4.11" * "unixVer": "4.11"
* }, * },
* "harmony": { * "harmony": {
* "osVer": "x", * "osVer": "3.0",
* "uniVer": "x", * "uniVer": "4.25",
* "unixVer": "x" * "unixVer": "x"
* } * }
* } * }
...@@ -128,8 +128,8 @@ export interface Uni { ...@@ -128,8 +128,8 @@ export interface Uni {
* "unixVer": "4.11" * "unixVer": "4.11"
* }, * },
* "harmony": { * "harmony": {
* "osVer": "x", * "osVer": "3.0",
* "uniVer": "x", * "uniVer": "4.25",,
* "unixVer": "x" * "unixVer": "x"
* } * }
* } * }
...@@ -157,8 +157,8 @@ export interface Uni { ...@@ -157,8 +157,8 @@ export interface Uni {
* "unixVer": "4.11" * "unixVer": "4.11"
* }, * },
* "harmony": { * "harmony": {
* "osVer": "x", * "osVer": "3.0",
* "uniVer": "x", * "uniVer": "4.25",
* "unixVer": "x" * "unixVer": "x"
* } * }
* } * }
...@@ -167,4 +167,4 @@ export interface Uni { ...@@ -167,4 +167,4 @@ export interface Uni {
* @uniVueVersion 2,3 //支持的vue版本 * @uniVueVersion 2,3 //支持的vue版本
*/ */
setUserCaptureScreen(options : SetUserCaptureScreenOptions) : void setUserCaptureScreen(options : SetUserCaptureScreenOptions) : void
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册