harmony-utils之CrashUtil,異常相關(guān)工具類
harmony-utils 簡介與說明
harmony-utils 一款功能豐富且極易上手的HarmonyOS工具庫,借助眾多實(shí)用工具類,致力于助力開發(fā)者迅速構(gòu)建鴻蒙應(yīng)用。其封裝的工具涵蓋了APP、設(shè)備、屏幕、授權(quán)、通知、線程間通信、彈框、吐司、生物認(rèn)證、用戶首選項(xiàng)、拍照、相冊、掃碼、文件、日志、異常捕獲、字符、字符串、數(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方法與使用
onHandled 注冊錯(cuò)誤觀測器(該方法建議在Ability里調(diào)用) 。注冊后可以捕獲到應(yīng)用產(chǎn)生的js crash,應(yīng)用崩潰時(shí)進(jìn)程不會(huì)退出。將異常信息寫入本地文件
CrashUtil.onHandled((exceptionInfo)= >{
LogUtil.error(JSON.stringify(exceptionInfo, null, 2));
});
onDestroy 注銷錯(cuò)誤觀測器
CrashUtil.onDestroy(); //注銷錯(cuò)誤觀測器
ToastUtil.showToast("注銷誤觀測器,成功!");
isHandled 判斷錯(cuò)誤觀測器是否存在
let isHandled = CrashUtil.isHandled();
ToastUtil.showToast(`誤觀測器是否存在:${isHandled}`);
getFilePath 獲取日志文件路徑(用于讀取異常文件、導(dǎo)出異常文件)
let path = CrashUtil.getFilePath();
LogUtil.error(`異常日志文件路徑:${path}`);
access 判斷日志文件是否存在
let access = CrashUtil.access();
ToastUtil.showToast(`日志文件是否存在:${access}`);
delete 刪除日志文件
CrashUtil.delete();
ToastUtil.showToast(`日志文件刪除成功!`);
getExceptionJson 獲取異常日志的JSON字符串
if (CrashUtil.access()) {
let jsonStr = await CrashUtil.getExceptionJson(); //讀取JSON
Utils.showSheetText(jsonStr);
} else {
ToastUtil.showToast("暫無日志文件");
}
getExceptionList 獲取異常日志的集合
if (CrashUtil.access()) {
let list = await CrashUtil.getExceptionList();
DialogHelper.showToast(`異常個(gè)數(shù):${list.length}`);
} else {
ToastUtil.showToast("暫無日志文件");
}
enableAppRecovery 啟用應(yīng)用恢復(fù)功能,參數(shù)按順序填入。該接口調(diào)用后,應(yīng)用從啟動(dòng)器啟動(dòng)時(shí)第一個(gè)Ability支持恢復(fù)
CrashUtil.enableAppRecovery();
restartApp 重啟APP,并拉起應(yīng)用啟動(dòng)時(shí)第一個(gè)Ability,可以配合errorManager相關(guān)接口使用
CrashUtil.restartApp();
saveAppState 保存當(dāng)前App狀態(tài) 或 主動(dòng)保存Ability的狀態(tài),這個(gè)狀態(tài)將在下次恢復(fù)啟動(dòng)時(shí)使用。可以配合errorManager相關(guān)接口使用
CrashUtil.saveAppState(this.context);
setRestartWant 設(shè)置下次恢復(fù)主動(dòng)拉起場景下的Ability。該Ability必須為當(dāng)前包下的UIAbility
let want: Want = {
bundleName: 'com.harmony.utils',
abilityName: 'EntryAbility'
};
CrashUtil.setRestartWant(want);
創(chuàng)作不易,請(qǐng)給童長老點(diǎn)贊
審核編輯 黃宇
-
Harmony
+關(guān)注
關(guān)注
0文章
104瀏覽量
2989
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論