harmony-utils之AppUtil,APP相關(guān)工具類
harmony-utils 簡(jiǎn)介與說明
harmony-utils 一款功能豐富且極易上手的HarmonyOS工具庫,借助眾多實(shí)用工具類,致力于助力開發(fā)者迅速構(gòu)建鴻蒙應(yīng)用。其封裝的工具涵蓋了APP、設(shè)備、屏幕、授權(quán)、通知、線程間通信、彈框、吐司、生物認(rèn)證、用戶首選項(xiàng)、拍照、相冊(cè)、掃碼、文件、日志、異常捕獲、字符、字符串、數(shù)字、集合、日期、隨機(jī)、base64、加密、解密、JSON等一系列的功能和作,能夠滿足各種不同的開發(fā)需求。
picker_utils 是harmony-utils拆分出來的一個(gè)子庫,包含 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 獲取應(yīng)用的Configuration
let config = AppUtil.getConfiguration();
setGrayScale 設(shè)置灰階,APP一鍵置灰
AppUtil.setGrayScale(1);
setColorMode 設(shè)置應(yīng)用的顏色模式。僅支持主線程調(diào)用。設(shè)置顏色模式,包括:深色模式、淺色模式、不設(shè)置(跟隨系統(tǒng))
AppUtil.setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT);
getColorMode 獲取應(yīng)用的顏色模式
let colorMode = AppUtil.getColorMode();
ToastUtil.showToast(`應(yīng)用的顏色模式:${colorMode}`);
setFont 設(shè)置應(yīng)用的字體類型。僅支持主線程調(diào)用
font.registerFont({ familyName: 'WCSF', familySrc: $rawfile('wcsf.ttf') });
AppUtil.setFont('WCSF');
setFontSizeScale 設(shè)置應(yīng)用字體大小縮放比例。僅支持主線程調(diào)用。
AppUtil.setFontSizeScale(1.8);
getFontSizeScale 獲取應(yīng)用字體大小縮放比例
let fontSizeScale = AppUtil.getFontSizeScale();
ToastUtil.showToast(`應(yīng)用字體大小縮放比例:${fontSizeScale}`);
setLanguage 設(shè)置應(yīng)用的語言
AppUtil.setLanguage('zh-cn');
getLanguage 獲取應(yīng)用的語言
let language = AppUtil.getLanguage();
ToastUtil.showToast(`應(yīng)用的語言:${language}`);
setSupportedProcessCache 設(shè)置應(yīng)用自身是否支持緩存后快速啟動(dòng)
AppUtil.setSupportedProcessCache(true);
clearUpApplicationData 清理應(yīng)用本身的數(shù)據(jù),同時(shí)撤銷應(yīng)用向用戶申請(qǐng)的權(quán)限
DialogHelper.showAlertDialog({
content: '是否清理應(yīng)用本身的數(shù)據(jù)?',
primaryButton:'取消',
secondaryButton:'清理',
onAction: (action) = > {
if (action === DialogAction.SURE) {
AppUtil.clearUpApplicationData();
}
}
});
killAllProcesses 終止應(yīng)用的所有進(jìn)程,進(jìn)程退出時(shí)不會(huì)正常走完應(yīng)用生命周期
DialogHelper.showAlertDialog({
content: '是否終止應(yīng)用的所有進(jìn)程?',
primaryButton:'取消',
secondaryButton:'終止',
onAction: (action) = > {
if (action === DialogAction.SURE) {
AppUtil.killAllProcesses();
}
}
});
restartApp 重啟應(yīng)用并拉起自身指定UIAbility。重啟時(shí)不會(huì)收到onDestroy回調(diào)
DialogHelper.showAlertDialog({
autoCancel: false,
backCancel: false,
content: '是否重啟應(yīng)用?',
primaryButton:'取消',
secondaryButton:'重啟',
onAction: (action) = > {
if (action === DialogAction.SURE) {
AppUtil.restartApp();
}
}
});
exit 主動(dòng)退出整個(gè)應(yīng)用;調(diào)用該方法后,任務(wù)中心的任務(wù)默認(rèn)不會(huì)清理,如需清理,需要配置removeMissionAfterTerminate為true
DialogHelper.showAlertDialog({
content: '是否重退出應(yīng)用?',
primaryButton:'取消',
secondaryButton:'退出',
onAction: (action) = > {
if (action === DialogAction.SURE) {
AppUtil.exit();
}
}
});
getRunningProcessInformation 獲取有關(guān)運(yùn)行進(jìn)程的信息
let processInformation = await AppUtil.getRunningProcessInformation();
onApplicationStateChange 注冊(cè)對(duì)當(dāng)前應(yīng)用前后臺(tái)變化的監(jiān)聽
private applicationStateChangeCallback: ApplicationStateChangeCallback = {
onApplicationForeground() {
LogUtil.warn('applicationStateChangeCallback onApplicationForeground');
},
onApplicationBackground() {
LogUtil.warn('applicationStateChangeCallback onApplicationBackground');
}
};
AppUtil.onApplicationStateChange(this.applicationStateChangeCallback);
offApplicationStateChange 取消對(duì)應(yīng)用前后臺(tái)切換事件的監(jiān)聽
AppUtil.offApplicationStateChange(this.applicationStateChangeCallback);
onEnvironment 注冊(cè)對(duì)系統(tǒng)環(huán)境變化的監(jiān)聽
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 取消對(duì)系統(tǒng)環(huán)境變化的監(jiān)聽
AppUtil.offEnvironment(this.callback1);
onAbilityLifecycle 注冊(cè)監(jiān)聽?wèi)?yīng)用內(nèi)生命周期
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 取消監(jiān)聽?wèi)?yīng)用內(nèi)生命周期
AppUtil.offAbilityLifecycle(this.callback2);
getKeyboardAvoidMode 獲取虛擬鍵盤抬起時(shí)的頁面避讓模式(OFFSET-上抬模式、RESIZE-壓縮模式)
let mode = AppUtil.getKeyboardAvoidMode();
setKeyboardAvoidMode 設(shè)置虛擬鍵盤彈出時(shí),頁面的避讓模式
AppUtil.setKeyboardAvoidMode(KeyboardAvoidMode.OFFSET)
isPortrait 當(dāng)前設(shè)備是否以豎屏方式顯示
let isPortrait = AppUtil.isPortrait();
ToastUtil.showToast(`當(dāng)前是否豎屏: ${isPortrait}`);
isLandscape 當(dāng)前設(shè)備是否以橫屏方式顯示
let isLandscape = AppUtil.isLandscape();
ToastUtil.showToast(`當(dāng)前是否橫屏: ${isLandscape}`);
getStatusBarHeight 獲取狀態(tài)欄的高度,單位為px
let statusBarHeight = AppUtil.getStatusBarHeight();
ToastUtil.showToast(`狀態(tài)欄的高度為:${statusBarHeight}px`)
getNavigationIndicatorHeight 獲取底部導(dǎo)航條的高度,單位為px
let indicatorHeight = AppUtil.getNavigationIndicatorHeight();
ToastUtil.showToast(`底部導(dǎo)航條的高度為:${indicatorHeight}px`)
setStatusBar 設(shè)置沉浸式狀態(tài)欄
AppUtil.setStatusBar();
getBundleInfo 獲取當(dāng)前應(yīng)用的BundleInfo
let bundleInfo = AppUtil.getAppInfoSync();
let infoStr = JSON.stringify(bundleInfo, null, 2);
getAppInfo 獲取應(yīng)用程序的配置信息
let appInfo = AppUtil.getAppInfoSync();
let infoStr = JSON.stringify(appInfo, null, 2);
getSignatureInfo 獲取應(yīng)用包的簽名信息
let signatureInfo = await AppUtil.getSignatureInfo();
let infoStr = JSON.stringify(signatureInfo, null, 2);
getBundleName 獲取應(yīng)用包的名稱
let bundleName = AppUtil.getBundleName();
getVersionCode 獲取應(yīng)用版本號(hào)
let versionCode = AppUtil.getVersionCode();
getVersionName 獲取應(yīng)用版本名
let versionName = AppUtil.getVersionName();
getTargetVersion 獲取應(yīng)用運(yùn)行目標(biāo)版本
let targetVersion = AppUtil.getTargetVersion();
getInstallTime 應(yīng)用包安裝時(shí)間
let installTime = AppUtil.getInstallTime();
getUpdateTime 應(yīng)用包更新時(shí)間
let updateTime = AppUtil.getUpdateTime();
getAppProvisionType 獲取應(yīng)用程序簽名證書文件的類型,分為debug和release兩種類型
let appProvisionType = AppUtil.getAppProvisionType();
debug 標(biāo)識(shí)應(yīng)用是否處于調(diào)試模式,取值為true表示應(yīng)用處于調(diào)試模式,取值為false表示應(yīng)用處于非調(diào)試模式
let debug = AppUtil.debug();
創(chuàng)作不易,請(qǐng)給童長(zhǎng)老點(diǎn)贊
-
APP
+關(guān)注
關(guān)注
33文章
1586瀏覽量
74004 -
方舟
+關(guān)注
關(guān)注
0文章
19瀏覽量
8596 -
HarmonyOS
+關(guān)注
關(guān)注
80文章
2146瀏覽量
32506 -
方舟編譯器
+關(guān)注
關(guān)注
0文章
63瀏覽量
403
發(fā)布評(píng)論請(qǐng)先 登錄
HarmonyOS開發(fā)案例:【生活健康app之編寫通用工具類】(5)

是否存在這個(gè)類來區(qū)分是Harmony系統(tǒng)或者是Android系統(tǒng)呢
軟件商推谷歌Docs與Outlook同步工具Harmony
Microchip Minutes - MPLAB? Harmony專輯 - 第5集 - MPLAB Harmony中的項(xiàng)目恢復(fù)和備份選項(xiàng)
Microchip Minutes - MPLAB? Harmony專輯 - 第5集 - MPLAB Harmony中的項(xiàng)目恢復(fù)和備份選項(xiàng)
MPLAB? Harmony圖形設(shè)計(jì)器

如何使用第三方庫中的@pura/harmony-utils(V1.3.3)申請(qǐng)授權(quán)工具類一

評(píng)論