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