# wdkit **Repository Path**: SHWondertek/wdkit ## Basic Information - **Project Name**: wdkit - **Description**: wdkit是基于ArkTS封装的一个基础工具库,旨在为鸿蒙开发者在开发鸿蒙app时提供便利。该工具库封装了常用的一些工具类:: 生物识别认证、消息事件中心、网络请求、网络检测、系统权限检测、跨模块解耦使用的服务、色值工具类、字符串工具类、toast工具类、数据持久化工具类(基于Pereference和KeyValue键值型数据库)、线程间通信工具类、防快速点击工具类、格式化工具类、json工具类等 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 0 - **Created**: 2025-04-30 - **Last Updated**: 2025-08-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # wdkit #### 介绍 wdkit是基于ArkTS封装的一个基础工具库,旨在为鸿蒙开发者在开发鸿蒙app时提供便利。该工具库封装了常用的一些工具类:: 生物识别认证、消息事件中心、网络请求、网络检测、系统权限检测、跨模块解耦使用的服务、色值工具类、字符串工具类、toast工具类、数据持久化工具类(基于Pereference和KeyValue键值型数据库)、线程间通信工具类、防快速点击工具类、格式化工具类、json工具类等 #### 安装教程 ohpm install @ohos/xxx-wdkit OpenHarmony ohpm 环境配置等更多内容,请参考如何安装 OpenHarmony ohpm 包 #### 使用说明 #模块wdkit主要是封装了如下内容:\ 生物识别认证 - AuthManager\ static getAvailableStatus(authType: userAuth.UserAuthType, authTrustLevel: userAuth.AuthTrustLevel): StatusResult // 查询指定类型和等级的认证能力是否支持 需要应用申请 ohos.permission.ACCESS_BIOMETRIC 权限 static startAuthDefault(showTip: boolean = false, callBack: Callback) static startAuth(params: AuthParams, callBack: Callback) static authCancel() // 取消认证 懒加载BaseSicDataSource、LazyDataSource\ 常量类:消息通信EventId\ 事件中心 - 提供订阅、取消订阅、触发事件的能力 - WDEventCenter\ static getInstance(): WDEventCenter // 获取单例对象 postEvent(eventInfo: WDEventInfo) // 发送事件 addEventCallback(eventName: string, callback: WDEventInfoCallback) // 注册事件回调 removeEventCallback(eventName: string) // 移除事件回调 网路请求:提供get、post等常用的http请求 - 单例 - WDHttpRequest\ getInstance(): WDHttpRequest // 获取网络请求实例 initHttpHeaders(provider: () => Record) // 请求头初始化 get>(url: string, headers?: HashMap): Promise // get方法获取网路资源 post>(url: string, data?: ESObject, headers?: HashMap): Promise // post方法获取网络资源 put>(url: string, data?: ESObject, headers?: HashMap): Promise delete>(url: string, headers?: HashMap): Promise request>(config: AxiosRequestConfig): Promise 网络类型判断、断网监听等 - 单例 - WDNetworkManager\ static getInstance(): WDNetworkManager // 网络管理实例 init() // 初始化网络状态监听器 getNetType(): WDNetworkType // 获取网络类型,网络监听网络变化刷新类型,这里优先返回变量 release() // 注销网络监听 isNetConnected(): boolean // 判断网络是否已连接 权限检测工具类 - PermissionUtil\ static async checkPermissions(permission: Permissions): Promise // 应用是否已授权 static reqPermissionsFromUser(permissions: Array, component: Object): Promise // 向用户申请授权[当应用需要访问用户的隐私信息或使用系统能力时,例如获取位置信息、访问日历、使用相机拍摄照片或录制视频等,应该向用户请求授权,这部分权限是user_grant权限] static openPermissionsInSystemSettings(context: Object): void// 跳转设置界面 static openPermissionsInNotificationSettings(context: Object): void // 跳转通知界面 static async requestPermissions(permissions: Permissions | Array): Promise // 申请权限 - 支持权限组 static async requestPermissionOnSetting(permissions: Permissions | Array): Promise // 二次向用户申请授权(单个权限 或 读写权限组,建议使用该方法) 提供跨模块解耦的Service服务 - ServiceManager\ static init(...implClass: ImpType>[]) // 服务注册 static getService(interfaceClassName: string): T // 获取接口实现 常用的工具集:\ 颜色工具类 - ColorUtils\ static rgb2hsv(color: ColorRgb): ColorHsv // RGB格式转换为HSV格式 static hsv2rgb(color: ColorHsv): ColorRgb // HSV格式转换为RGB格式 static rgbToNumber(color: ColorRgb): number // RGB颜色转为整数值 static numberToRgb(color: number): ColorRgb // 整数值转为RGB颜色值 static hexColorValueToRGB(hex: string): number[] // 十六进制色值转成arg static getDrawingColorFilter(hex: string): ColorFilter | undefined // 获取图片填充的ColorFilter static changeTopStatusBarColor(statusValue?: number) // 修改手机顶部状态栏颜色 消息发送工具类 - EmitterUtil\ static sendEmptyEvent(eventId: number) // 发送空消息 static sendEvent(eventId: number, str?: string | number) // 发送消息 static receiveEvent(eventId: number, callback: (str?: string) => void) // 接收消息 防快速点击工具类 - FastClickUtil\ static enableClick(delayTime?: number): boolean // 判断点击事件是否可触发 格式化工具类 - FormatUtil\ static getIconFont(iconFont: string): string // 解析iconFont字符 static transliterator(text: string): string // 将输入字符串从源格式转换为目标格式(中文汉字转为拼音) static isPhone(phone: string, country: string = "CN", option?: i18n.PhoneNumberFormatOptions): boolean // 判断传入的电话号码格式是否正确 static getPhoneFormat(phone: string, country: string = "CN", option?: i18n.PhoneNumberFormatOptions): string // 对电话号码进行格式化 static getPhoneLocationName(phone: string, locale: string = "zh-CN", country: string = "CN", option?: i18n.PhoneNumberFormatOptions): string // 获取电话号码归属地 GlobalContext工具类 - GlobalContext\ static setContext(context: common.UIAbilityContext): void // 设置上下文对象【UIAbilityContext】 static getContext(): common.UIAbilityContext // 获取上下文对象【UIAbilityContext】 static setStageContext(context: common.AbilityStageContext): void // 设置上下文对象【AbilityStageContext】 static getStageContext(): common.AbilityStageContext // 获取上下文对象【AbilityStageContext】 Json工具类 - JsonUtil\ static isJSONStr(str: string): boolean // 是否是json字符串格式数据 static jsonToMap(jsonStr: string): Map // json转Map static mapToJsonStr(map: Map): string // Map转json格式字符串 static beanToJsonStr(data: Object | Array | null | undefined): string // 对象转JSON字符串 static jsonToArray(jsonStr: string): Array // JSON字符串转Array 键值型数据库实现数据持久化工具类\ static async put(key: string, value: Uint8Array | string | number | boolean): Promise // 添加指定类型的键值对到数据库 static async get(key: string, defValue?: string | number | boolean | Uint8Array): Promise // 获取指定键值 static async getString(key: string, defValue: string = ''): Promise // 获取字符串类型键值 static async getNumber(key: string, defValue: number = 0): Promise // 获取数字类型键值 static async getBoolean(key: string, defValue?: boolean): Promise // 获取布尔类型键值 static async getUint8Array(key: string, defValue?: Uint8Array): Promise // 获取Uint8Array类型键值 static async delete(key: string): Promise // 从数据库中删除指定键值的数据 static async putBatch(entries: distributedKVStore.Entry[]): Promise // 批量插入键值对到SingleKVStore数据库中 static async deleteBatch(keys: string[]): Promise // 批量删除SingleKVStore数据库中的键值对 static async getEntries(keyPrefix: string): Promise // 获取匹配指定键前缀的所有键值对 static async backup(file: string): Promise // 以指定名称备份数据库 static async restore(file: string): Promise // 从指定的数据库文件恢复数据库 static async deleteBackup(files: Array): Promise> // 根据指定名称删除备份文件 static async nDataChange(type: distributedKVStore.SubscribeType, listener: Callback) // 订阅指定类型的数据变更通知 static async offDataChange(listener?: Callback) // 取消订阅数据变更通知 基础定位工具类 - LocationUtil\ static locationAbilityEnable(): boolean // 判断位置服务是否已经使能(定位是否开启) static async checkLocationPermission(): Promise // 检测是否已授权定位权限 static async requestLocationPermissions(): Promise // 申请定位权限 static async getLocationSimple(): Promise // 获取当前位置,通过callback方式异步返回结果 static async getLocation(request?: geoLocationManager.CurrentLocationRequest | geoLocationManager.SingleLocationRequest):Promise // 自定义request参数方式获取位置 static locationChangeOnSimple(callBack: Callback): number // 开始监听位置变化,并发起定位请求 static locationChangeOn(request: geoLocationManager.LocationRequest | geoLocationManager.ContinuousLocationRequest, callBack: Callback): number // 自定义request参数方式 开始监听位置变化,并发起定位请求 static locationChangeOff(callback?: Callback): number // 关闭位置变化订阅,并删除对应的定位请求 static isGeocoderEnable(): boolean // 判断地理编码与逆地理编码服务是否可用 static async getGeoAddressFromLocationName(locationName: string, maxItems: number = 1): Promise> // 地理编码,将地理描述转换为具体坐标集合 static async getAddressFromLocationName(locationName: string): Promise // 地理编码,将地理描述转换为具体坐标 static async getGeoAddressFromLocation(latitude: number, longitude: number, maxItems: number = 1): Promise> // 逆地理编码,将坐标转换为地理描述集合 static async getAddressFromLocation(latitude: number, longitude: number): Promise // 逆地理编码,将坐标转换为地理描述 static async getCountryCode(): Promise // 获取当前的国家码 static calDistance(from: mapCommon.LatLng, to: mapCommon.LatLng): number // 根据指定的两个经纬度坐标点,计算这两个点间的直线距离,单位为米 static calDistanceSimple(fromLat: number, fromLng: number, toLat: number, toLng: number): number // 根据指定的两个经纬度坐标点,计算这两个点间的直线距离 日志工具类\ static logInit(logEnable: boolean) // 是否开启日志打印 static infoLog(content: string, logTag?: string) // info级别日志 static debugLog(content: string, logTag?: string) // debug级别日志 static errorLog(content: string, logTag?: string) // error级别日志 static warnLog(content: string, logTag?: string) // warn级别日志 static fatalLog(content: string, logTag?: string) // fatal级别日志 LRUCache缓存工具类 - 单例\ static getInstance(): LRUCacheUtil // 获取LRUCacheUtil实例 put(key: string, value: Object) // 添加缓存到lruCache中 remove(key: string) // 删除key对应的缓存 isEmpty(): boolean // 判断lruCache缓存是否为空 has(key: string): boolean // 判断是否包含key对应的缓存 get(key: string): T // 获取key对应的缓存 getCapacity(): number // 获取当前缓冲区的容量 updateCapacity(newCapacity: number) // 重新设置lruCache的容量 clear() // 清除缓存数据,并重置lruCache的大小 剪切板工具类 - PasteboardUtil\ static setDataTextToPasteboard(text: string): Promise // 将字符串写入系统剪贴板 static setDataHtmlToPasteboard(h5Str: string): Promise // 将h5数据写入剪切板 static setDataUriToPasteboard(uri: string): Promise // 将Uri数据写入系统剪贴板 static getDataFromPasteboard(): Promise // 读取系统剪切板数据 static async getDataStrFromPasteboard(): Promise // 异步方式读取系统剪切板字符串 static getDataStrFromPasteboardSync(): string // 同步读取系统剪贴板里的字符串 static clear(): Promise // 清空系统剪贴板内容 static async hasData(): Promise // 异步方式判断系统剪贴板中是否有内容 static hasDataSync(): boolean // 同步方式判断系统剪贴板中是否有内容 随机数生成工具类 - RandomUtil\ static getNumberRandom(min: number, max: number): number // 生成指定范围的随机数 static getBooleanRandom(): boolean // 生成随机Boolean值 static getIntRandom(min: number = 0, max: number = Number.MAX_SAFE_INTEGER): number // 生成随机整数 static getChineseCharRandom(): string // 生成一个随机汉字('\u4E00'-'\u9FFF') static getChineseRandom(length: number): string // 生成指定长度的随机汉字 static getStrRandom(length: number, strPool: string): string // 根据指定字符串,随机生成 指定长度的字符串 static getColorRandom(): string // 生成一个随机十六进制色值 static getDataBlobRandom(length: number): cryptoFramework.DataBlob // 生成随机指定长度的DataBlob static getRandomUint8Array(length: number): Uint8Array // 生成随机指定长度的Uint8Array static generateUUID36Bit(): string // 生成36位UUID static generateUUID32Bit(): string // 生成32位UUID static generateUUIDRandom(entropyCache: boolean = true): string // 使用加密安全随机数生成器生成随机的RFC - 4122版本4的string类型UUID static generateBinaryUUIDRandom(entropyCache: boolean = true): Uint8Array // 使用加密安全随机数生成器生成随机的RFC - 4122版本4的Uint8Array类型UUID 资源访问工具类 - ResourcesUtil\ static async getResourcesText(context: Context, filename: string): Promise // 异步获取资源字符串内容 static getResourcesTextSync(context: Context, filename: string): string | undefined // 获取资源字符串内容 static async getResourcesJson(context: Context, filename: string): Promise // 异步获取资源文件并转为json 截屏工具类 - ScreenShotUtil\ static async getSnapshotPicById(id: string, options?: componentSnapshot.SnapshotOptions): Promise // 获取已加载的组件的截图 static createFromBuilder(builder: CustomBuilder, delay: number = 200, checkImageStatus: boolean = false, options?: componentSnapshot.SnapshotOptions): Promise // 后台渲染CustomBuilder自定义组件,并输出截图。通过Promise返回结果并支持获取离屏组件绘制区域坐标和大小。 static async snapshot(windowClass?: window.Window): Promise // 获取窗口截图,使用Promise异步回调 static snapshotListenerOn(callback: VoidCallback) // 开启系统截屏事件的监听 static snapshotListenerOff(callback?: VoidCallback) // 关闭系统截屏事件的监听 sp存储工具类 - SPHelper SPHelper.xx()方式调用如下API方法;\ save(key: string, value: preferences.ValueType) // 保存数据,需要自行调用flush保存 saveAndFlush(key: string, value: preferences.ValueType) // 保持数据 saveSync(key: string, value: preferences.ValueType) // 同步方式保存数据 async flush(): Promise // 异步将首选项内存数据写入文件 async get(key: string, defValue: preferences.ValueType): Promise // 异步获取数据 getSync(key: string, defValue: preferences.ValueType): preferences.ValueType // 同步方式获取数据 async has(key: string): Promise // 异步方式判断是否存在关键子为key的数据 hasSync(key: string): boolean // 同步方式判断是否存在关键子为key的数据 async delete(key: string): Promise // 异步删除数据 deleteSync(key: string) // 同步删除数据 吐司工具类 - ToastUtils\ static showToast(message: ResourceStr | ShowToastParams, duration?: number, backgroundColor?: ResourceColor, textColor?: ResourceColor) // 自定义内容、时长、背景色、文字颜色 static shortToast(message: ResourceStr) // 显示短时间toast static longToast(message: ResourceStr) // 显示长时间toast static colorToast(message: ResourceStr, backgroundColor: ResourceColor, textColor?: ResourceColor) // 显示带颜色的toast 文件解压缩工具类 - ZipUtil static unzipToDirectory(selectPath: string, targetPath: string, password?: string, charEncoding?: number): Promise // 解压文件到某个目录 字符串工具类 - StringUtils\ static stringToUInt8Array(aString: string): Uint8Array // 字符串转Uint8Array static uInt8ArrayToString(array: Uint8Array): string // Uint8Array转字符串 static hasChinese(aString: string): boolean // 字符串是否含有中文 static isEmpty(obj: dynamic): boolean // 为空判断 static isNotEmpty(obj: dynamic): boolean // 不为空判断 static maskSensitiveInfo(str: string | undefined | null): string | undefined | null // 字符串脱敏,脱敏1/3之一的字符 static md5(content?: string): string // 字符串MD5加密 static parseInt(string: string | undefined, defaultValue: number): number // 字符串转number 带默认值 static parseNumber(input: string): number // 字符串转number 不带默认值 集合工具类\ ArrayUtils\ static isNotEmpty(array: Array): boolean // 数组是否不为空 static contains(array: Array, element: T): boolean // 数组是否含有某个元素 static indexAt(array: Array, index: number): T | null // 根据指定索引安全地获取数组元素 static first(array: Array): T | null // 获取数组的首个元素 static last(array: Array): T | null // 获取数组的最后一个元素 static remove(array: Array, element: T) // 从数组中移除某个元素 static removeAll(array: Array) // 清空数组 static insertAt(array: Array, element: T, index: number) // 在某个位置插入元素 static removeAt(array: Array, index: number) // 删除某个位置的元素 static isArray(value: any): boolean // 是否是数组类型 static isEmpty(collection?: any[]): boolean // 集合是否为空 static isEmptyHashMap(obj?: HashMap): boolean // HashMap是否为空 ListUtils\ static isEmpty(list: List | undefined): boolean // List集合是否为空 MapUtils\ static isNotEmpty(map?: Map): boolean // Map集合是否不为空 static isEmpty(map?: Map): boolean // Map集合是否为空 static putAll(targetMap: Map, sourceMap: Map): void // 将sourceMap中的所有元素添加到targetMap中 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)