女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

HarmonyOS開發案例:【生活健康app之編寫通用工具類】(5)

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-11 09:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本節將介紹日志打印、時間換算等通用工具類的編寫和使用,工具類可以簡化應用代碼編寫和業務流程處理。

日志類

日志類Logger旨在提供一個全局的日志打印、日志管理的地方,既可以規范整個應用的日志打印,也方便日后對日志工具類進行修改,而不需要去改動代碼中每一個調用日志的地方,如切換具體的日志實現類(比如不使用Console而是HiLog),將日志記錄到本地文件等。

Logger對外的日志API全部使用靜態方法,方便調用者使用,目前分verbose,debug,info,warn,error五個級別。

開發前請熟悉鴻蒙開發指導文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
使用方法如下:

  1. import Logger日志類:
    import { Logger } from '../utils/log/Logger';
    
  2. 調用對應級別的靜態方法:
    Logger.debug('MyAbilityStage', 'onCreate');
    

3、Logger類中包括debug、info、warn、error,具體內容如下:

// Logger.ets  
import hilog from '@ohos.hilog';

const LOGGER_PREFIX: string = 'Healthy_life';

class Logger {
  private domain: number;
  private prefix: string;

  ...
  constructor(prefix: string = '', domain: number = 0xFF00) {
    this.prefix = prefix;
    this.domain = domain;
  }

  debug(...args: string[]): void {
    hilog.debug(this.domain, this.prefix, this.format, args);
  }

  info(...args: string[]): void {
    hilog.info(this.domain, this.prefix, this.format, args);
  }

  warn(...args: string[]): void {
    hilog.warn(this.domain, this.prefix, this.format, args);
  }

  error(...args: string[]): void {
    hilog.error(this.domain, this.prefix, this.format, args);
  }
}

export default new Logger(LOGGER_PREFIX, 0xFF02);

時間工具

為全局提供時間工具,避免重復定義。

  1. 常用時間相關常量:
// Utils.ets
  const CHINESE_OF_WEEK: string[] = ['一', '二', '三', '四', '五', '六', '日'];
  const YEAR: string = '年';
  const MONTH: string = '月';
  const DAY: string = '日';
  const WEEK: string = '星期';
  DAYS_OF_WEEK: number = 7;
  const SUNDAY_FIRST_SHIFT: number = 6;
  1. 時間函數示例(由時間常量衍生出星期一到星期日和數字 1-7 的字典映射):
// Utils.ets
export const oneWeekDictFunc = () = > {
  const oneWeekDict: Array< string > = [];
  for (let index = 0;index < CHINESE_OF_WEEK.length; index++) {
    oneWeekDict[index] = `${WEEK}${CHINESE_OF_WEEK[index]}`;
  }
  return oneWeekDict;
}

單位轉換工具

把比例等分浮點數轉換為百分比字符串。

例如成就頁面,每一行平均分布三個徽章,可以先定義一個浮點數代表等分比例,再轉換為百分比字符串。

// Utils.ets
export function ratio2percent(ratio: number): string {
  return `${ratio * 100}%`;
}

使用方法如下:

  1. import 工具方法:
    import { ratio2percent } from '../common/utils/Utils'
    
  2. 引用工具方法 ( 例如成就頁面,每個徽章占據屏幕寬度的三分之一 ) :
    // BadgeCardComponent.ets
    Column({space: commonConst.DEFAULT_18}) { 
      ...  // 省略徽章卡片的 UI 布局細節
    }
    .width(ratio2percent(Const.ACHIEVE_SPLIT_RATIO)) // achieveConst.ACHIEVE_SPLIT_RATIO = 1 / 3
    

事件分發類

事件分發類提供應用全局的事件注冊,分發,接受,可以實現組件之間的解耦。

事件分發類全局共享一個實例, 將事件處理統一管理(HealthDataSrcMgr是單例):

獲取事件分發實例:

// HomeComponent.ets
@Provide broadCast: BroadCast = HealthDataSrcMgr.getInstance().getBroadCast();

// HealthDataSrcMgr.ets
public getBroadCast(): BroadCast {
  return this.broadCast;
}

事件注冊:

// CustomDialogView.ets
aboutToAppear() {
  Logger.debug('CustomDialogView', 'aboutToAppear'); 
  // 成就對話
  this.broadCast.on(BroadCastType.SHOW_ACHIEVEMENT_DIALOG, (achievementLevel: number) = > {
    Logger.debug('CustomDialogView', 'SHOW_ACHIEVEMENT_DIALOG');
    this.achievementLevel = achievementLevel;
    this.achievementDialog.open();
  });

  // 任務時鐘對話框
  this.broadCast.on(BroadCastType.SHOW_TASK_DETAIL_DIALOG,
    (currentTask: TaskInfo, dialogCallBack: CustomDialogCallback) = > {
      Logger.debug('CustomDialogView', 'SHOW_TASK_DETAIL_DIALOG');
      this.currentTask = currentTask || TaskItem;
      this.dialogCallBack = dialogCallBack;
      this.taskDialog.open();
    });
}
  
// BroadCast.ets
public on(event: string, callback: Function) {
  Logger.info(FILE_TAG, 'register broadcast with type '+ event);
  switch (event) {
    case BroadCastType.SHOW_ACHIEVEMENT_DIALOG:
      this.callBackArray.showAchievementDialog = callback;
      break;
    case BroadCastType.SHOW_TASK_DETAIL_DIALOG:
      this.callBackArray.showTaskDetailDialog = callback;
      break;
    case BroadCastType.SHOW_TARGET_SETTING_DIALOG:
      this.callBackArray.showTargetSettingDialog = callback;
      break;
    case BroadCastType.SHOW_REMIND_TIME_DIALOG:
      this.callBackArray.showRemindTimeDialog = callback;
      break;
    case BroadCastType.SHOW_FREQUENCY_DIALOG:
      this.callBackArray.showFrequencyDialog = callback;
      break;
    default:
      break;
  }
}

取消事件注冊:

// TaskDetailComponent.ets
aboutToAppear() {
  this.broadCast.off(BroadCastType.SHOW_TARGET_SETTING_DIALOG, () = > {});
  this.broadCast.off(BroadCastType.SHOW_REMIND_TIME_DIALOG, () = > {});
  this.broadCast.off(BroadCastType.SHOW_FREQUENCY_DIALOG, () = > {});
}

// BroadCast.ets
public off(event: string, callback: Function) {
  if (event === null) {
    Logger.info(FILE_TAG, 'cancel all broadcast');
    this.callBackArray = callBackArrayTemp;
  }
  Logger.info(FILE_TAG, 'cancel broadcast with type '+ event);
  const cbs = this.callBackArray;
  if (!cbs) {
    return;
  }
  if (callback === null) {
    switch (event) {
      case BroadCastType.SHOW_ACHIEVEMENT_DIALOG:
        this.callBackArray.showAchievementDialog = () = > {};
        break;
      case BroadCastType.SHOW_TASK_DETAIL_DIALOG:
        this.callBackArray.showTaskDetailDialog = () = > {}; 
        break;
      case BroadCastType.SHOW_TARGET_SETTING_DIALOG:
        this.callBackArray.showTargetSettingDialog = () = > {};
        break;
      case BroadCastType.SHOW_REMIND_TIME_DIALOG: 
        this.callBackArray.showRemindTimeDialog = () = > {};
        break;
      case BroadCastType.SHOW_FREQUENCY_DIALOG:
        this.callBackArray.showFrequencyDialog = () = > {};
        break;
      default:
        break;
    }
  }
}

`HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`

搜狗高速瀏覽器截圖20240326151344.png

發送事件:

// HomeComponent.ets
taskItemAction(item: TaskInfo, isClick: boolean): void {
  if (!this.homeStore.checkCurrentDay()) {
    return;
  }
  if (isClick) {
    // 點擊時鐘
    let callback: CustomDialogCallback = { confirmCallback: (taskTemp: TaskInfo) = > {
      this.onConfirm(taskTemp)
      }, cancelCallback: () = > {
      } };
    this.broadCast.emit(BroadCastType.SHOW_TASK_DETAIL_DIALOG, [item, callback]);
  } else {
    // 編輯任務
    let editTaskStr: string = JSON.stringify(TaskMapById[item.taskID - 1]);
    let editTask: ITaskItem = JSON.parse(editTaskStr);
    editTask.targetValue = item?.targetValue;
    editTask.isAlarm = item.isAlarm;
    editTask.startTime = item.startTime;
    editTask.frequency = item.frequency;
    editTask.isOpen = item.isOpen;
    router.pushUrl({ url: 'pages/TaskEditPage', params: { params: JSON.stringify(editTask) } });
  }
}

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 鴻蒙
    +關注

    關注

    59

    文章

    2588

    瀏覽量

    43933
  • HarmonyOS
    +關注

    關注

    80

    文章

    2121

    瀏覽量

    32680
  • OpenHarmony
    +關注

    關注

    29

    文章

    3847

    瀏覽量

    18433
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    HarmonyOS開發案例:【生活健康app之首頁啟動】(1)

    用戶可以創建最多6個健康生活任務(早起,喝水,吃蘋果,每日微笑,刷牙,早睡),并設置任務目標、是否開啟提醒、提醒時間、每周任務頻率。
    的頭像 發表于 05-10 11:49 ?1427次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發案</b>例:【<b class='flag-5'>生活</b><b class='flag-5'>健康</b><b class='flag-5'>app</b>之首頁啟動】(1)

    鴻蒙智聯生態產品《接入智慧生活App開發指導》(官方更新版)

    HarmonyOS Connect生態產品應用開發過程中,很多開發者對于如何接入智慧生活App還存在一些疑問,如:如何選擇合適的
    發表于 04-26 15:00

    4天帶你上手HarmonyOS ArkUI開發——《HarmonyOS ArkUI入門訓練營健康生活實戰》

    HarmonyOS ArkUI入門訓練營健康飲食應用》是面向入門開發者打造的實戰課程系列。特邀華為終端BG高級開發工程師作為本次訓練營講
    發表于 01-05 11:49

    單片機開發使用工具LED查詢軟件

    單片機開發使用工具LED查詢軟件
    發表于 12-16 16:59 ?1次下載

    harmony-utilsAppUtil,APP相關工具

    harmony-utils一款功能豐富且極易上手的HarmonyOS工具庫,借助眾多實用工具,致力于助力開發者迅速構建鴻蒙應用。
    的頭像 發表于 06-26 09:24 ?102次閱讀
    harmony-utils<b class='flag-5'>之</b>AppUtil,<b class='flag-5'>APP</b>相關<b class='flag-5'>工具</b><b class='flag-5'>類</b>

    harmony-utilsJSONUtil,JSON工具

    harmony-utilsJSONUtil,JSON工具 harmony-utils 簡介與說明 harmony-utils 一款功能豐富且極易上手的HarmonyOS
    的頭像 發表于 07-03 18:21 ?95次閱讀

    harmony-utilsLocationUtil,定位相關工具

    用工具,致力于助力開發者迅速構建鴻蒙應用。其封裝的工具涵蓋了APP、設備、屏幕、授權、通知、線程間通信、彈框、吐司、生物認證、用戶首選項
    的頭像 發表于 07-03 18:13 ?95次閱讀

    harmony-utilsLogUtil,日志工具

    harmony-utilsLogUtil,日志工具 harmony-utils 簡介與說明 harmony-utils 一款功能豐富且極易上手的HarmonyOS
    的頭像 發表于 07-03 18:12 ?97次閱讀

    harmony-utilsPreviewUtil,文件預覽工具

    用工具,致力于助力開發者迅速構建鴻蒙應用。其封裝的工具涵蓋了APP、設備、屏幕、授權、通知、線程間通信、彈框、吐司、生物認證、用戶首選項
    的頭像 發表于 07-03 11:40 ?87次閱讀

    harmony-utilsStrUtil,字符串工具

    harmony-utilsStrUtil,字符串工具 harmony-utils 簡介與說明 [harmony-utils] 一款功能豐富且極易上手的HarmonyOS
    的頭像 發表于 07-03 11:32 ?64次閱讀

    harmony-utilsToastUtil,吐司工具

    harmony-utilsToastUtil,吐司工具 harmony-utils 簡介與說明 [harmony-utils] 一款功能豐富且極易上手的HarmonyOS
    的頭像 發表于 06-30 17:35 ?88次閱讀

    harmony-utilsTypeUtil,類型檢查工具

    用工具,致力于助力開發者迅速構建鴻蒙應用。其封裝的工具涵蓋了APP、設備、屏幕、授權、通知、線程間通信、彈框、吐司、生物認證、用戶首選項
    的頭像 發表于 06-30 17:35 ?84次閱讀

    harmony-utilsWantUtil,Want工具

    用工具,致力于助力開發者迅速構建鴻蒙應用。其封裝的工具涵蓋了APP、設備、屏幕、授權、通知、線程間通信、彈框、吐司、生物認證、用戶首選項
    的頭像 發表于 06-30 17:34 ?81次閱讀

    harmony-utilsMD5,MD5工具

    harmony-utilsMD5,MD5工具 harmony-utils 簡介與說明 [harmony-utils] 一款功能豐富且極易
    的頭像 發表于 06-30 16:49 ?119次閱讀

    harmony-utilsSHA,SHA工具

    harmony-utilsSHA,SHA工具 harmony-utils 簡介與說明 [harmony-utils] 一款功能豐富且極易上手的HarmonyOS
    的頭像 發表于 06-30 16:51 ?114次閱讀
    主站蜘蛛池模板: 秦安县| 治县。| 平泉县| 牡丹江市| 金川县| 台江县| 云南省| 昭觉县| 兴城市| 南开区| 康平县| 吐鲁番市| 临猗县| 沈阳市| 临汾市| 嵊州市| 安龙县| 定州市| 晋中市| 大名县| 定南县| 郓城县| 宣城市| 清镇市| 台山市| 吴川市| 河南省| 东明县| 牡丹江市| 石柱| 于田县| 绥德县| 双流县| 定南县| 安西县| 陆川县| 铜鼓县| 屏南县| 六安市| 建德市| 青冈县|