最受欢迎的鸿蒙工具库(harmony-utils)

avatar
作者
筋斗云
阅读量:0

📚简介

harmony-utils 是一款高效的OpenHarmony/HarmonyOS工具包,封装了常用工具类,提供一系列简单易用的方法。帮助开发者快速构建鸿蒙应用。

📚下载安装

ohpm i @pura/harmony-utils

OpenHarmony ohpm 环境配置等更多内容,请参考如何安装 OpenHarmony ohpm 包


📚模块介绍

模块介绍
AppUtilAPP相关工具类
DeviceUtil设备相关工具类
DisplayUtil屏幕相关工具类
PermissionUtil申请授权工具类
AuthUtil手机的生物认证(指纹、人脸、密码)工具类
NotificationUtil通知工具类
PreferencesUtilPreferences(用户首选项)工具类
FileUtil文件操作相关工具类
PickerUtil拍照、文件(文件、图片、视频、音频)选择和保存,工具类
PreviewUtil文件预览工具类
NetworkUtil网络相关工具类
LocationUtil定位工具类(WGS-84坐标系)
PasteboardUtil剪贴板工具类
SnapshotUtil组件截图和窗口截图工具类
ScanUtil码工具类(扫码、码图生成、图片识码)
ImageUtil图片相关工具类
KeyboardUtil键盘工具类
LogUtil日志工具类
CrashUtil全局异常捕获,崩溃日志收集
StrUtil字符串工具类
Base64UtilBase64工具类
NumberUtilnumber工具类
DateUtil日期工具类
ArrayUtil数组工具类
RandomUtil随机工具类
ObjectUtil对象工具类
JSONUtilJSON工具类
CacheUtil缓存工具类
ClickUtil节流、防抖 工具类(用于点击事件,防止按钮被重复点击)
TempUtil温度转换工具类,华氏度与摄氏度相互转换
WindowUtil窗口工具类
ActionUtil弹窗工具类(promptAction)
DialogUtil弹窗工具类(AlertDialog)
ToastUtil土司工具类(promptAction)
AlertControlDialog操作确认类弹出框
ConfirmControlDialog信息确认类弹出框
LoadingControlDialog进度加载类弹出框
SelectControlDialog选择类弹出框
TipControlDialog提示弹出框


📚API详解

全局初始化方法,在UIAbility的onWindowStageCreate方法中初始化 AppUtil.init()     onWindowStageCreate(windowStage: window.WindowStage): void {    AppUtil.init(this.context, windowStage);   } 

AppUtil(APP相关工具类)点我见使用详细

方法介绍
init初始化方法,缓存全局变量,在UIAbility的onWindowStageCreate方法中初始化该方法
getContext获取上下文,common.UIAbilityContext
getMainWindow获取主窗口
getUIContext获取UIContext
getWindowProperties获取当前窗口的属性
getKeyboardAvoidMode获取虚拟键盘抬起时的页面避让模式(OFFSET-上抬模式、RESIZE-压缩模式)
setKeyboardAvoidMode设置虚拟键盘弹出时,页面的避让模式
isPortrait当前设备是否以竖屏方式显示
isLandscape当前设备是否以横屏方式显示
setPreferredOrientation设置窗口的显示方向属性
setWindowBrightness设置屏幕亮度值
setWindowKeepScreenOn设置屏幕是否为常亮状态
setWindowPrivacyMode设置窗口是否为隐私模式。设置为隐私模式的窗口,窗口内容将无法被截屏或录屏
setWindowBackgroundColor设置窗口的背景色。Stage模型下,该接口需要在loadContent()或setUIContent()调用生效后使用
setWindowFocusable设置点击时是否支持切换焦点窗口
setWindowTouchable设置窗口是否为可触状态
getStatusBarHeight获取状态栏的高度,单位为px
getNavigationIndicatorHeight获取底部导航条的高度,单位为px。
setStatusBar设置沉浸式状态栏(需要配合getStatusBarHeight和getNavigationIndicatorHeight一起使用)
getBundleInfo获取当前应用的BundleInfo
getAppInfo获取应用程序的配置信息
toAppSetting跳转应用设置页面
toNetworkSetting跳转移动网络设置页面
toNotificationSetting跳转通知设置页面
toBluetoothSetting跳转蓝牙设置页面
toNfcSetting跳转NFC设置页面

DeviceUtil(设备相关工具类)点我见使用详细

方法介绍
getDeviceId获取设备ID(卸载APP后依旧不变)
getConfiguration获取设备的Configuration
getConfigurationSync获取设备的Configuration
getDirection获取当前设备屏幕方向
getDeviceCapability获取设备的DeviceCapability
getDeviceCapabilitySync获取设备的DeviceCapability
getDeviceType获取当前设备类型
getDeviceTypeStr获取当前设备类型,返回字符串
getScreenDensity获取当前设备屏幕密度
startVibration开启设备振动
stopVibration停止设备振动(按照VIBRATOR_STOP_MODE_TIME模式)

DisplayUtil(屏幕相关工具类)点我见使用详细

方法介绍
getDefaultDisplaySync获取当前默认的display对象
getWidth获取设备的屏幕宽度,单位为px
getHeight获取设备的屏幕高度,单位为px
getOrientation获取设备当前显示的方向
getDisplayState获取设备的状态
getCutoutRect获取取挖孔屏、刘海屏、瀑布屏等不可用屏幕区域信息。建议应用布局规避该区域
getCutoutHeight获取挖孔屏、刘海屏等不可用屏幕区域的高度,单位为px
isFoldable检查设备是否可折叠
getFoldStatus获取可折叠设备的当前折叠状态
getFoldDisplayMode获取可折叠设备的显示模式
onFoldStatusChange开启折叠设备折叠状态变化的监听
offFoldStatusChange关闭折叠设备折叠状态变化的监听

PermissionUtil(申请授权工具类)点我见使用详细

方法介绍
checkPermissions校验当前是否已经授权
checkRequestPermissions校验是否授权后并申请授权
requestPermissions申请授权
requestPermissionsList申请组合授权

AuthUtil(手机的生物认证(指纹、人脸、密码)工具类)点我见使用详细

方法介绍
getAvailableStatus查询指定类型和等级的认证能力是否支持
onStartEasy开始认证,使用指纹和密码认证
onStart开始认证,用户指定类型认证
cancel取消认证

NotificationUtil(通知工具类)点我见使用详细

方法介绍
authorizeNotification校验是否已授权通知服务
publishBasic发布普通文本通知
publishMultiLine发布多文本通知
publishLongText发布长文本通知
publishPicture发布带有图片的通知
cancel取消通知
cancelAll取消所有通知
setBadge设置桌面角标个数
clearBadge清空桌面角标
setBadgeFromNotificationCount设置桌面角标数量,来自于通知数量
getActiveNotificationCount获取当前应用未删除的通知数量
getActiveNotifications获取当前应用未删除的通知列表

PreferencesUtil(Preferences工具类)点我见使用详细

方法介绍
put将数据缓存
get获取缓存值
getString获取string类型的缓存值
getNumber获取number类型的缓存值
getBoolean获取boolean类型的缓存值
has检查缓存实例中是否包含给定Key的存储键值对
delete删除缓存值
clear清空缓存

FileUtil(文件操作相关工具类)点我见使用详细

方法介绍
getFilesDirPath获取文件目录下的文件夹路径或文件路径
getCacheDirPath获取缓存目录下的文件夹路径或文件路径
getTempDirPath获取临时目录下的文件夹路径或文件路径
getFileUri通过URI或路径,获取FileUri
getFileName通过URI或路径,获取文件名
getFilePath通过URI或路径,获取文件路径
getParentUri通过URI或路径,获取对应文件父目录的URI
getParentPath通过URI或路径,获取对应文件父目录的路径名
getUriFromPath以同步方法获取文件URI
getFileExtention根据文件名获取文件后缀
isFile判断文件是否是普通文件
isDirectory判断文件是否是目录
rename重命名文件或文件夹,使用Promise异步回调
renameSync重命名文件或文件夹,以同步方法
mkdir创建目录,当recursion指定为true,可多层级创建目录
mkdirSync创建目录以同步方法,当recursion指定为true,可多层级创建目录
rmdir删除整个目录,使用Promise异步回调
rmdirSync删除整个目录,以同步方法
unlink删除单个文件,使用Promise异步回调
unlinkSync删除单个文件,以同步方法
access检查文件是否存在,使用Promise异步回调
accessSync检查文件是否存在,以同步方法
open打开文件,支持使用URI打开文件
openSync打开文件,支持使用URI打开文件
read从文件读取数据
readSync从文件读取数据
readText基于文本方式读取文件(即直接读取文件的文本内容)
readTextSync基于文本方式读取文件(即直接读取文件的文本内容)
write将数据写入文件
writeSync将数据写入文件
writeEasy将数据写入文件,并关闭文件
close关闭文件
closeSync关闭文件
listFile列出文件夹下所有文件名,支持递归列出所有文件名(包含子目录下),支持文件过滤
listFileSync列出文件夹下所有文件名,支持递归列出所有文件名(包含子目录下),支持文件过滤
stat获取文件详细属性信息
statSync获取文件详细属性信息
copy拷贝文件或者目录,支持拷贝进度监听
copyFile复制文件
copyFileSync以同步方法复制文件
moveFile移动文件
moveFileSync移动文件,以同步方法
moveDir移动源文件夹至目标路径下
moveDirSync以同步方法移动源文件夹至目标路径下
truncate截断文件
truncateSync截断文件,以同步方法
lstat获取链接文件信息
lstatSync获取链接文件信息,以同步方法
fsync同步文件数据
fsyncSync同步文件数据,以同步方法
fdatasync实现文件内容数据同步
fdatasyncSync实现文件内容数据同步,以同步方法
createStream基于文件路径打开文件流
createStreamSync基于文件路径打开文件流,以同步方法
fdopenStream基于文件描述符打开文件流
fdopenStreamSync基于文件描述符打开文件流,以同步方法
mkdtemp创建临时目录
mkdtempSync创建临时目录,以同步的方法
dup将文件描述符转化为File
utimes修改文件最近访问时间属性
getFormatFileSize格式化文件大小
getRawFileContentSync获取resources/rawfile目录下对应的rawfile文件内容
getRawFileContent获取resources/rawfile目录下对应的rawfile文件内容
getRawFileContentStrSync获取resources/rawfile目录下对应的rawfile文件内容
getRawFileContentStr获取resources/rawfile目录下对应的rawfile文件内容

PickerUtil(拍照、文件选择和保存,工具类)点我见使用详细

方法介绍
camera调用系统相机,拍照、录视频
selectPhoto通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频
savePhoto通过保存模式拉起photoPicker进行保存图片或视频资源的文件名,若无参数,则默认需要用户自行输入
selectDocument通过选择模式拉起documentPicker界面,用户可以选择一个或多个文件
saveDocument通过保存模式拉起documentPicker界面,用户可以保存一个或多个文件。
selectAudio通过选择模式拉起audioPicker界面,用户可以选择一个或多个音频文件
saveAudio通过保存模式拉起audioPicker界面,用户可以保存一个或多个音频文件。
getPhotoAsset获取对应uri的PhotoAsset对象,用于读取文件信息

PreviewUtil(文件预览工具类)点我见使用详细

方法介绍
generatePreviewInfo根据文件uri构建PreviewInfo
openPreview通过传入文件预览信息,打开预览窗口。1秒内重复调用无效
openPreviewEasy通过传入文件的uri,打开预览窗口。1秒内重复调用无效
canPreview根据文件的uri判断文件是否可预览
hasDisplayed判断预览窗口是否已经存在
closePreview关闭预览窗口,仅当预览窗口存在时起效
loadData加载预览文件信息。仅当预览窗口存在时起效
loadDataEasy加载预览文件信息。仅当预览窗口存在时起效
onSharePreview调用其他应用预览文件
getMimeType根据文件后缀名获取文件mimeType
getIconFileStr根据文件后缀名获取对应文件类型的图标
getMimeTypeMapfilePreview支持的预览文件类型

NetworkUtil(网络相关工具类)点我见使用详细

方法介绍
hasDefaultNet检查默认数据网络是否被激活
hasDefaultNetSync检查默认数据网络是否被激活
hasNetWiFi判断当前网络是否是Wi-Fi,否则是移动流量热点网络
getNetBearType获取网络类型
getIpAddress获取当前设备的IP地址(设备连接Wi-Fi后)
register订阅指定网络状态变化的通知,支持多事件监听回调
unregister取消订阅默认网络状态变化的通知

LocationUtil(定位工具类(WGS-84坐标系))点我见使用详细

方法介绍
isLocationEnabled判断位置服务是否已经使能(定位是否开启)。
requestLocationPermissions申请定位权限
getCurrentLocationEasy获取当前位置
getCurrentLocation获取当前位置
onLocationChangeEasy开启位置变化订阅,并发起定位请求。
onLocationChange开启位置变化订阅,并发起定位请求
offLocationChange关闭位置变化订阅,并删除对应的定位请求。
getAddressFromLocationName地理逆编码,将地理描述转换为具体坐标
getGeoAddressFromLocationName地理逆编码,将地理描述转换为具体坐标
getAddressFromLocation地理逆编码,将坐标转换为地理描述
getGeoAddressFromLocation地理逆编码,将坐标转换为地理描述集合
getCountryCode获取当前的国家码

PasteboardUtil(剪贴板工具类)点我见使用详细

方法介绍
setDataText将纯文本数据写入系统剪贴板
setDataHtml将Htm数据写入系统剪贴板
setDataUri将Uri数据写入系统剪贴板
getData读取系统剪贴板内容
getDataSync读取系统剪贴板内容
getDataStr读取系统剪贴板里的字符串
getDataSyncStr读取系统剪贴板里的字符串
clearData清空系统剪贴板内容
hasData判断系统剪贴板中是否有内容
hasDataSync判断系统剪贴板中是否有内容

SnapshotUtil(组件截图和窗口截图工具类)点我见使用详细

方法介绍
get获取已加载的组件的截图,传入组件的组件id,找到对应组件进行截图。通过Promise返回结果
createFromBuilder在应用后台渲染CustomBuilder自定义组件,并输出其截图
snapshot获取窗口截图,使用Promise异步回调

ScanUtil(码工具类(扫码、码图生成、图片识码))点我见使用详细

方法介绍
startScanForResult调用默认界面扫码,使用Promise方式异步返回解码结果
generateBarcode码图生成,使用Promise异步返回生成的码图
onPickerScanForResult通过picker拉起图库并选择图片,并调用图片识码
onDetectBarCode调用图片识码,使用Promise方式异步返回识码结果
canIUseScan判断当前设备是否支持码能力

ImageUtil(图片相关工具类 )点我见使用详细

方法介绍
base64ToPixelMap图片base64字符串转PixelMap
pixelMapToBase64StrPixelMap转图片base64字符串
savePixelMap保存pixelMap到本地
saveImageSource保存ImageSource到本地
createImageSource创建图片源实例
createIncrementalSource以增量的方式创建图片源实例
packingFromPixelMap图片压缩或重新打包,使用Promise形式返回结果
packingFromImageSource图片压缩或重新打包,使用Promise形式返回结果
packToFileFromPixelMap将PixelMap图片源编码后直接打包进文件
packToFileFromImageSource将ImageSource图片源编码后直接打包进文件
getPixelMapFromMedia用户获取resource目录下的media中的图片PixelMap

KeyboardUtil(键盘工具类)点我见使用详细

方法介绍
hide隐藏键盘
onKeyboardListener订阅输入法软键盘显示和隐藏事件
removeKeyboardListener取消订阅输入法软键盘显示或隐藏事件
onInputTextChanged订阅文本内容变化
removeInputTextChanged取消订阅文本内容变化

LogUtil(日志工具类)点我见使用详细

方法介绍
init初始化日志参数(该方法建议在Ability里调用)
setDomain设置日志对应的领域标识,范围是0x0~0xFFFF。(该方法建议在Ability里调用)
setTag设置日志标识(该方法建议在Ability里调用)
setShowLog是否打印日志(该方法建议在Ability里调用)
debug打印DEBUG级别日志
info打印INFO级别日志
warn打印WARN级别日志
error打印ERROR级别日志
fatal打印FATAL级别日志
print打印JSON对象和JSON字符串(日志过滤tag为:JSAPP)

CrashUtil(全局异常捕获,崩溃日志收集)点我见使用详细

方法介绍
onError注册错误观测器。注册后可以捕获到应用产生的js crash,应用崩溃时进程不会退出。将异常信息写入本地文件
offError注销错误观测器
readErrorText读取错误日志文件
onExportErrorLog导出错误日志文件
enableAppRecovery启用应用恢复功能,参数按顺序填入。该接口调用后,应用从启动器启动时第一个Ability支持恢复。
restartApp重启APP,并拉起应用启动时第一个Ability,可以配合errorManager相关接口使用
saveAppState保存当前App状态 或 主动保存Ability的状态,这个状态将在下次恢复启动时使用。可以配合errorManager相关接口使用
setRestartWant设置下次恢复主动拉起场景下的Ability。该Ability必须为当前包下的UIAbility

StrUtil(字符串工具类)点我见使用详细

方法介绍
isNull字符串是否为空(undefined、null)
isNotNull判断字符串是否为非空
isEmpty字符串是否为空(undefined、null、字符串长度为0)
isNotEmpty判断字符串是否为非空
isBlank判断字符串是否为空和空白符(空白符包括空格、制表符、全角空格和不间断空格)
isNotBlank判断字符串是否为非空
replace替换字符串中匹配的正则为给定的字符串
startsWith检查字符串是否以给定的字符串开头
endsWith检查字符串是否以给定的字符串结尾
repeat将字符串重复指定次数
toLower转换整个字符串的字符为小写
toUpper转换整个字符串的字符为大写
capitalize转换字符串首字母为大写,剩下为小写
equal判断两个传入的数值或者是字符串是否相等
notEqual判断两个传入的数值或者是字符串是否不相等
strToUint8Array字符串转Uint8Array
unit8ArrayToStrUint8Array转字符串
strToBase64字符串转Base64字符串
base64ToStrBase64字符串转字符串
strToBuffer字符串转ArrayBuffer
bufferToStrArrayBuffer转字符串
bufferToUint8ArrayArrayBuffer转Uint8Array
unit8ArrayToBufferUint8Array转ArrayBuffer

Base64Util(Base64工具类)点我见使用详细

方法介绍
encodeSync编码,通过输入参数编码后输出Uint8Array对象
encodeToStrSync编码,通过输入参数编码后输出对应文本
decodeSync解码,通过输入参数解码后输出对应Uint8Array对象
encode编码,通过输入参数编码后输出Uint8Array对象
encodeToStr编码,通过输入参数编码后输出对应文本
decode解码,通过输入参数解码后输出对应Uint8Array对象

NumberUtil(number工具类)点我见使用详细

方法介绍
isNumber判断是否是数值
toInt将字符串转换为整数
toFloat将字符串转换为浮点数

DateUtil(日期工具类)点我见使用详细

方法介绍
getToday获取今天的日期
getTodayTime获取今天的时间戳
getTodayStr获取今天的时间,字符串类型
getFormatDate获取格式化日期,将传入的日期格式化为Date
getFormatDateStr获取格式化日期,将传入的日期格式化为指定格式的字符串
getTipDateStr格式化时间戳,获取提示性时间字符串
getDateDiff获取两个Date的日期差单位为天

ArrayUtil(数组工具类)点我见使用详细

方法介绍
isNotEmpty集合是否为非空集合
isEmpty集合是否为空集合
removeEmpty去除集合中的空值
trim去除传入集合的每个值的前后空格
distinct数组去重,去重后生成新的数组,原数组不变
reverse反转数组,会修改原始数组
filter通过传入的filter实现来过滤返回需要的元素
append将新元素添加到已有数组中 添加新元素会生成一个新的数组,不影响原数组
setOrAppend将元素值设置为数组的某个位置,当给定的index大于数组长度,则追加
min获取数组(数值、字符串、日期)最小值
max获取数组(数值、字符串、日期)最大值
flatten平铺二维数组
union平铺二维数组,并去重

RandomUtil(随机工具类)点我见使用详细

方法介绍
randomInt生成随机数number值
randomLimit生成指定范围内的随机数 [0,limit)
randomNumber生成指定范围内的随机数
randomBoolean生成随机Boolean值
randomStr根据指定字符串,随机生成指定长度的字符串
randomChinese生成随机汉字
randomColor生成随机颜色,十六进制
generateUUID36生成36位UUID,带-
generateUUID32生成32位UUID,带-
generateRandomUUID使用加密安全随机数生成器生成随机的RFC 4122版本4的string类型UUID
generateRandomBinaryUUID使用加密安全随机数生成器生成随机的RFC 4122版本4的Uint8Array类型UUID

ObjectUtil(对象工具类)点我见使用详细

方法介绍
isString判断是否是String
isNull判断对象是否为空
deepCopy深度拷贝对象

JSONUtil(JSON工具类)点我见使用详细

方法介绍
jsonToBeanJSON字符串转Class对象
jsonToArrayJSON字符串转Array
jsonToMapJSON转Map
beanToJsonStr对象转字符串
isJSONStr判断是否是字符串格式json

CacheUtil(缓存工具类 )点我见使用详细

方法介绍
save存值
get取值

ClickUtil(节流、防抖 工具类)点我见使用详细

方法介绍
throttle节流:在一定时间内,只触发一次
debounce防抖:一定时间内,只有最后一次操作,再过wait毫秒后才执行函数

TempUtil(温度转换工具类)点我见使用详细

方法介绍
F2C华氏度转摄氏度
C2F摄氏度转华氏度

ActionUtil(弹窗工具类)点我见使用详细

方法介绍
showConfirmDialog显示弹窗(一个按钮)
showPrimaryDialog显示弹窗(两个按钮)
showDialog显示弹窗(多个按钮)
showActionMenuEasy显示操作菜单(简单易用)
showActionMenu显示操作菜单

DialogUtil(弹窗工具类)点我见使用详细

方法介绍
showConfirmDialog显示弹窗(一个按钮)
showPrimaryDialog显示弹窗(两个按钮)
showDialog显示弹窗(可多个按钮)
showDialogEasy显示弹窗(可多个按钮,简单易用)
showActionSheet列表选择弹窗
showActionSheetEasy列表选择弹窗(简单易用)
showCalendarPicker日历选择器弹窗
showDatePicker日期滑动选择器弹窗
showTimePicker时间滑动选择器弹窗
showTextPicker文本滑动选择器弹窗

ToastUtil(土司工具类)点我见使用详细

方法介绍
showToast弹出土司,默认时长为2s
showShort弹出短土司,默认时长为:1.5s
showLong弹出长土司,默认时长为:10s

📚仓库地址

https://gitee.com/tongyuyan/harmony-utils

💖后续计划

1、持续优化和添加更多的实用方法与功能(网络相关、语音、文字识别、router)。

2、添加新的模块(悬浮窗、加载动画、JSBridge)。

💖技术交流

在这里插入图片描述

🙏贡献代码

使用过程中发现任何问题都可以提Issue 给我们,当然,我们也非常欢迎你给我们发PR

📚开源协议

本项目基于 Apache License 2.0 ,请自由地享受和参与开源。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!