写点什么

harmony-utils 之 AppUtil,APP 相关工具类

  • 2025-06-25
    安徽
  • 本文字数:4496 字

    阅读完需:约 15 分钟

harmony-utils 之 AppUtil,APP 相关工具类

harmony-utils 简介与说明



harmony-utils 一款功能丰富且极易上手的 HarmonyOS 工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了 APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期、随机、base64、加密、解密、JSON 等一系列的功能和操作,能够满足各种不同的开发需求。


picker_utils 是 harmony-utils 拆分出来的一个子库,包含 PickerUtil、PhotoHelper、ScanUtil。


下载安装


ohpm i @pura/harmony-utils


ohpm i @pura/picker_utils


  //全局初始化方法,在UIAbility的onCreate方法中初始化 AppUtil.init()  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {    AppUtil.init(this.context);  }
复制代码

API 方法与使用


init 初始化方法,缓存全局变量,在 UIAbility 的 onCreate 方法中初始化该方法
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {    AppUtil.init(this.context);  }
复制代码
isApiSupported 检查 API 版本是否安全
   let bl = AppUtil.isApiSupported(18);
复制代码
getApplicationContext 获取 ApplicationContext
   let applicationContext = AppUtil.getApplicationContext();
复制代码
getContext 获取 UIContext
   let uiContext = AppUtil.getUIContext();
复制代码
getWindowStage 获取 WindowStage
  let windowStage = AppUtil.getWindowStage();  LogUtil.error(JSON.stringify(windowStage, null, 2));
复制代码
getMainWindow 获取主窗口
 let mainWindow = AppUtil.getMainWindow();
复制代码
getConfiguration 获取应用的 Configuration
 let config = AppUtil.getConfiguration();
复制代码
setGrayScale 设置灰阶,APP 一键置灰
 AppUtil.setGrayScale(1);
复制代码
setColorMode 设置应用的颜色模式。仅支持主线程调用。设置颜色模式,包括:深色模式、浅色模式、不设置(跟随系统)
  AppUtil.setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT);
复制代码
getColorMode 获取应用的颜色模式
  let colorMode = AppUtil.getColorMode();  ToastUtil.showToast(`应用的颜色模式:${colorMode}`);
复制代码
setFont 设置应用的字体类型。仅支持主线程调用
  font.registerFont({ familyName: 'WCSF', familySrc: $rawfile('wcsf.ttf') });  AppUtil.setFont('WCSF');
复制代码
setFontSizeScale 设置应用字体大小缩放比例。仅支持主线程调用。<API13+>
  AppUtil.setFontSizeScale(1.8);
复制代码
getFontSizeScale 获取应用字体大小缩放比例
  let fontSizeScale = AppUtil.getFontSizeScale();  ToastUtil.showToast(`应用字体大小缩放比例:${fontSizeScale}`);
复制代码
setLanguage 设置应用的语言
  AppUtil.setLanguage('zh-cn');
复制代码
getLanguage 获取应用的语言
 let language = AppUtil.getLanguage(); ToastUtil.showToast(`应用的语言:${language}`);
复制代码
setSupportedProcessCache 设置应用自身是否支持缓存后快速启动
  AppUtil.setSupportedProcessCache(true);
复制代码
clearUpApplicationData 清理应用本身的数据,同时撤销应用向用户申请的权限
DialogHelper.showAlertDialog({  content: '是否清理应用本身的数据?',  primaryButton:'取消',  secondaryButton:'清理',  onAction: (action) => {    if (action === DialogAction.SURE) {      AppUtil.clearUpApplicationData();    }  }});
复制代码
killAllProcesses 终止应用的所有进程,进程退出时不会正常走完应用生命周期
DialogHelper.showAlertDialog({  content: '是否终止应用的所有进程?',  primaryButton:'取消',  secondaryButton:'终止',  onAction: (action) => {    if (action === DialogAction.SURE) {      AppUtil.killAllProcesses();    }  }});
复制代码
restartApp 重启应用并拉起自身指定 UIAbility。重启时不会收到 onDestroy 回调
DialogHelper.showAlertDialog({  autoCancel: false,  backCancel: false,  content: '是否重启应用?',  primaryButton:'取消',  secondaryButton:'重启',  onAction: (action) => {    if (action === DialogAction.SURE) {      AppUtil.restartApp();    }  }});
复制代码
exit 主动退出整个应用;调用该方法后,任务中心的任务默认不会清理,如需清理,需要配置 removeMissionAfterTerminate 为 true
DialogHelper.showAlertDialog({  content: '是否重退出应用?',  primaryButton:'取消',  secondaryButton:'退出',  onAction: (action) => {    if (action === DialogAction.SURE) {      AppUtil.exit();    }  }});
复制代码
getRunningProcessInformation 获取有关运行进程的信息
 let processInformation = await AppUtil.getRunningProcessInformation();
复制代码
onApplicationStateChange 注册对当前应用前后台变化的监听
  private applicationStateChangeCallback: ApplicationStateChangeCallback = {    onApplicationForeground() {      LogUtil.warn('applicationStateChangeCallback onApplicationForeground');    },    onApplicationBackground() {      LogUtil.warn('applicationStateChangeCallback onApplicationBackground');    }  };    AppUtil.onApplicationStateChange(this.applicationStateChangeCallback);
复制代码
offApplicationStateChange 取消对应用前后台切换事件的监听
 AppUtil.offApplicationStateChange(this.applicationStateChangeCallback);
复制代码
onEnvironment 注册对系统环境变化的监听
  private environmentCallback: EnvironmentCallback = {    onConfigurationUpdated(config) {      LogUtil.warn(`onConfigurationUpdated config:\n${JSON.stringify(config, null)}`);    },    onMemoryLevel(level) {      LogUtil.warn(`onMemoryLevel level: ${level}`);    }  };    this.callback1 = AppUtil.onEnvironment(this.environmentCallback);
复制代码
offEnvironment 取消对系统环境变化的监听
  AppUtil.offEnvironment(this.callback1);
复制代码
onAbilityLifecycle 注册监听应用内生命周期
 private abilityLifecycleCallback: AbilityLifecycleCallback = {    onAbilityCreate(ability) {      LogUtil.info(`AbilityLifecycleCallback onAbilityCreate ability: ${ability}`);    },    onWindowStageCreate(ability, windowStage) {      LogUtil.info(`AbilityLifecycleCallback onWindowStageCreate ability: ${ability}`);      LogUtil.info(`AbilityLifecycleCallback onWindowStageCreate windowStage: ${windowStage}`);    },    onWindowStageActive(ability, windowStage) {      LogUtil.info(`AbilityLifecycleCallback onWindowStageActive ability: ${ability}`);      LogUtil.info(`AbilityLifecycleCallback onWindowStageActive windowStage: ${windowStage}`);    },    onWindowStageInactive(ability, windowStage) {      LogUtil.info(`AbilityLifecycleCallback onWindowStageInactive ability: ${ability}`);      LogUtil.info(`AbilityLifecycleCallback onWindowStageInactive windowStage: ${windowStage}`);    },    onWindowStageDestroy(ability, windowStage) {      LogUtil.info(`AbilityLifecycleCallback onWindowStageDestroy ability: ${ability}`);      LogUtil.info(`AbilityLifecycleCallback onWindowStageDestroy windowStage: ${windowStage}`);    },    onAbilityDestroy(ability) {      LogUtil.info(`AbilityLifecycleCallback onAbilityDestroy ability: ${ability}`);    },    onAbilityForeground(ability) {      LogUtil.info(`AbilityLifecycleCallback onAbilityForeground ability: ${ability}`);    },    onAbilityBackground(ability) {      LogUtil.info(`AbilityLifecycleCallback onAbilityBackground ability: ${ability}`);    },    onAbilityContinue(ability) {      LogUtil.info(`AbilityLifecycleCallback onAbilityContinue ability: ${ability}`);    }  };    this.callback2 = AppUtil.onAbilityLifecycle(this.abilityLifecycleCallback);
复制代码
offAbilityLifecycle 取消监听应用内生命周期
 AppUtil.offAbilityLifecycle(this.callback2);
复制代码
getKeyboardAvoidMode 获取虚拟键盘抬起时的页面避让模式(OFFSET-上抬模式、RESIZE-压缩模式)
 let mode = AppUtil.getKeyboardAvoidMode();
复制代码
setKeyboardAvoidMode 设置虚拟键盘弹出时,页面的避让模式
 AppUtil.setKeyboardAvoidMode(KeyboardAvoidMode.OFFSET)
复制代码
isPortrait 当前设备是否以竖屏方式显示
 let isPortrait = AppUtil.isPortrait(); ToastUtil.showToast(`当前是否竖屏: ${isPortrait}`);
复制代码
isLandscape 当前设备是否以横屏方式显示
  let isLandscape = AppUtil.isLandscape();  ToastUtil.showToast(`当前是否横屏: ${isLandscape}`);
复制代码
getStatusBarHeight 获取状态栏的高度,单位为 px
 let statusBarHeight = AppUtil.getStatusBarHeight(); ToastUtil.showToast(`状态栏的高度为:${statusBarHeight}px`)
复制代码
getNavigationIndicatorHeight 获取底部导航条的高度,单位为 px
 let indicatorHeight = AppUtil.getNavigationIndicatorHeight(); ToastUtil.showToast(`底部导航条的高度为:${indicatorHeight}px`)
复制代码
setStatusBar 设置沉浸式状态栏
  AppUtil.setStatusBar();
复制代码
getBundleInfo 获取当前应用的 BundleInfo
 let bundleInfo = AppUtil.getAppInfoSync(); let infoStr = JSON.stringify(bundleInfo, null, 2);
复制代码
getAppInfo 获取应用程序的配置信息
 let appInfo = AppUtil.getAppInfoSync(); let infoStr = JSON.stringify(appInfo, null, 2);
复制代码
getSignatureInfo 获取应用包的签名信息
 let signatureInfo = await AppUtil.getSignatureInfo(); let infoStr = JSON.stringify(signatureInfo, null, 2);
复制代码
getBundleName 获取应用包的名称
 let bundleName = AppUtil.getBundleName();
复制代码
getVersionCode 获取应用版本号
 let versionCode = AppUtil.getVersionCode();
复制代码
getVersionName 获取应用版本名
 let versionName = AppUtil.getVersionName();
复制代码
getTargetVersion 获取应用运行目标版本
  let targetVersion = AppUtil.getTargetVersion();
复制代码
getInstallTime 应用包安装时间
 let installTime = AppUtil.getInstallTime();
复制代码
getUpdateTime 应用包更新时间
 let updateTime = AppUtil.getUpdateTime();
复制代码
getAppProvisionType 获取应用程序签名证书文件的类型,分为 debug 和 release 两种类型
 let appProvisionType = AppUtil.getAppProvisionType();
复制代码
debug 标识应用是否处于调试模式,取值为 true 表示应用处于调试模式,取值为 false 表示应用处于非调试模式
 let debug = AppUtil.debug();
复制代码

创作不易,请给童长老点赞👍



https://github.com/787107497/harmony-utils


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


OpenHarmony三方库


童长老CSDN博客

用户头像

还未添加个人签名 2025-05-14 加入

还未添加个人简介

评论

发布
暂无评论
harmony-utils之AppUtil,APP相关工具类_HarmonyOS_桃花镇童长老_InfoQ写作社区