色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內(nèi)不再提示

harmonyos開發(fā)新建頁面

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-24 17:24 ? 次閱讀

介紹

介紹如何使用后臺代理提醒,實現(xiàn)一個簡易鬧鐘。要求完成以下功能:

  1. 展示指針表盤或數(shù)字時間。
  2. 添加、修改和刪除鬧鐘。
  3. 展示鬧鐘列表,并可打開和關(guān)閉單個鬧鐘。
  4. 鬧鐘到設(shè)定的時間后彈出提醒。
  5. 將鬧鐘的定時數(shù)據(jù)保存到輕量級數(shù)據(jù)庫。

相關(guān)概念

  • [Canvas]:提供畫布組件,用于自定義繪制圖形。
  • [CanvasRenderingContext2D]:使用RenderingContext在Canvas組件上進行繪制,繪制對象可以是矩形、文本、圖片等。
  • [后臺代理提醒]:開發(fā)應用時,開發(fā)者可以調(diào)用后臺提醒發(fā)布的接口創(chuàng)建定時提醒,包括倒計時、日歷、鬧鐘三種提醒類型。使用后臺代理提醒能力后,應用可以被凍結(jié)或退出,計時和彈出提醒的功能將被后臺系統(tǒng)服務代理。本應用中主要使用到后臺代理提醒的兩個接口:
    • publishReminder 發(fā)布一個后臺代理提醒,使用callback方式實現(xiàn)異步調(diào)用,該方法需要申請通知彈窗Notification.requestEnableNotification后才能調(diào)用。
    • cancelReminder 取消指定id的提醒,使用callback方式實現(xiàn)異步調(diào)用。
    • 鴻蒙開發(fā)指導文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

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

相關(guān)權(quán)限

本篇Codelab需要在module.json5中配置如下權(quán)限:

"requestPermissions": [
  {
    "name": "ohos.permission.PUBLISH_AGENT_REMINDER"
  }
]

環(huán)境搭建

軟件要求

  • [DevEco Studio]版本:DevEco Studio 3.1 Release。
  • OpenHarmony SDK版本:API version 9。

硬件要求

  • 開發(fā)板類型:[潤和RK3568開發(fā)板]。
  • OpenHarmony系統(tǒng):3.2 Release。

環(huán)境搭建

完成本篇Codelab我們首先要完成開發(fā)環(huán)境的搭建,本示例以RK3568開發(fā)板為例,參照以下步驟進行:

  1. [獲取OpenHarmony系統(tǒng)版本]:標準系統(tǒng)解決方案(二進制)。以3.2 Release版本為例:
  2. 搭建燒錄環(huán)境。
    1. [完成DevEco Device Tool的安裝]
    2. [完成RK3568開發(fā)板的燒錄]
  3. 搭建開發(fā)環(huán)境。
    1. 開始前請參考[工具準備],完成DevEco Studio的安裝和開發(fā)環(huán)境配置。
    2. 開發(fā)環(huán)境配置完成后,請參考[使用工程向?qū)創(chuàng)建工程(模板選擇“Empty Ability”)。
    3. 工程創(chuàng)建完成后,選擇使用[真機進行調(diào)測]。

代碼結(jié)構(gòu)解讀

本篇Codelab只對核心代碼進行講解,對于完整代碼,我們會在gitee中提供。

`HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789v直接拿`

├──entry/src/main/ets                       // 代碼區(qū)    
│  ├──common
│  │  ├──constants
│  │  │  ├──AlarmSettingType.ets            // 鬧鐘設(shè)置類型枚舉
│  │  │  ├──CommonConstants.ets             // 公共常量類
│  │  │  ├──DetailConstant.ets              // 詳情頁常量類
│  │  │  └──MainConstant.ets                // 首頁常量類
│  │  └──utils
│  │     ├──DataTypeUtils.ets               // 數(shù)據(jù)類型工具類
│  │     ├──DimensionUtil.ets               // 屏幕適配工具類
│  │     └──GlobalContext.ets               // 全局變量工具類
│  ├──entryability
│  │  └──EntryAbility.ets                   // 程序入口類
│  ├──model
│  │  ├──database
│  │  │  ├──PreferencesHandler.ets          // 輕量級數(shù)據(jù)庫操作類
│  │  │  └──PreferencesListener.ets         // 輕量級數(shù)據(jù)庫回調(diào)接口   
│  │  └──ReminderService.ets                // 系統(tǒng)后臺提醒服務類   
│  │──pages
│  │  ├──DetailIndex.ets                    // 詳情頁入口文件
│  │  └──MainIndex.ets                      // 主頁入口文件
│  │──view
│  │  ├──Detail     
│  │  │  ├──dialog
│  │  │  │  ├──CommonDialog.ets             // 公共Dialog組件
│  │  │  │  ├──DurationDialog.ets           // 鬧鈴時長選擇Dialog組件
│  │  │  │  ├──IntervalDialog.ets           // 鬧鈴間隔選擇Dialog組件
│  │  │  │  ├──RenameDialog.ets             // 鬧鈴名設(shè)置Dialog組件
│  │  │  │  └──RepeatDialog.ets             // 鬧鈴重復設(shè)置Dialog組件
│  │  │  ├──DatePickArea.ets                // 詳情頁時間選擇組件
│  │  │  └──SettingItem.ets                 // 詳情頁設(shè)置組件
│  │  ├──Main    
│  │  │  ├──AlarmList.ets                   // 主頁鬧鐘列表組件
│  │  │  ├──AlarmListItem.ets               // 主頁鬧鐘列表子項組件
│  │  │  └──ClockArea.ets                   // 主頁時鐘組件
│  │  └──BackContainer.ets                  // 自定義頭部組件
│  └──viewmodel
│     ├──AlarmItemBean.ets                  // 鬧鐘屬性類
│     ├──AlarmSettingBean.ets               // 鬧鐘設(shè)置屬性類
│     ├──DayDateBean.ets                    // 日期屬性類
│     ├──DetailViewModel.ets                // 詳情模塊邏輯功能類   
│     ├──MainViewModel.ets                  // 主頁邏輯功能類
│     └──ReminderItemBean.ets               // 后臺提醒屬性類
└──entry/src/main/resources                 // 資源文件目錄

鬧鐘主界面

鬧鐘界面包括當前時間、鬧鐘列表、添加鬧鐘子組件,具體包括以下模塊:

  • 展示當前時間。
  • 展示鬧鐘列表。
  • 添加鬧鐘。
  • 后臺代理提醒。

展示當前時間

當前時間使用了Canvas組件繪制,默認展示指針表盤,點擊表盤區(qū)域切換為數(shù)字時鐘。

在主頁的ClockArea組件中初始化Canvas畫布,并綁定指針表盤和數(shù)字時鐘切換事件。

// ClockArea.ets
@Component
export default struct ClockArea {
  ...
  build() {
    Canvas(this.renderContext)
      .width(this.canvasSize)
      .aspectRatio(CommonConstants.DEFAULT_LAYOUT_WEIGHT)
      .onReady(() = > {
        if (this.drawInterval === CommonConstants.DEFAULT_NUMBER_NEGATIVE) {
          this.startDrawTask();
        }
      })
      .onClick(() = > {
        this.showClock = !this.showClock;
      })
  }
  // 啟動繪畫任務
  private startDrawTask() {
    let that = this;
    that.renderContext.translate(
      this.canvasSize / CommonConstants.DEFAULT_DOUBLE,
      this.canvasSize / CommonConstants.DEFAULT_DOUBLE);
    that.drawClockArea();
    this.drawInterval = setInterval(() = > {
      that.drawClockArea();
    }, MainConstant.DEFAULT_ONE_SECOND_MS);
  }
  ...      
}

繪畫任務是使用CanvasRenderingContext2D對象在Canvas畫布組件上繪制指針表盤和數(shù)字時鐘。

// ClockArea.ets
// 開始繪制時鐘區(qū)域
private drawClockArea(): void{
  this.renderContext.clearRect(
    -this.canvasSize,
    -this.canvasSize / CommonConstants.DEFAULT_DOUBLE,
    this.canvasSize * CommonConstants.DEFAULT_DOUBLE,
    this.canvasSize);
  let date = new Date();
  let hours = date.getHours();
  let minutes = date.getMinutes();
  let seconds = date.getSeconds();
  if (this.showClock) {
    // 繪制表盤時鐘
  } else {
    // 繪制數(shù)字時鐘
  }
}

展示鬧鐘列表

鬧鐘列表組件,展示已添加的鬧鐘信息,可對鬧鐘進行啟停操作,點擊鬧鐘可跳轉(zhuǎn)到鬧鐘操作界面(修改和刪除鬧鐘)。主頁啟動后獲取輕量級數(shù)據(jù)庫中的鬧鐘定時數(shù)據(jù),并監(jiān)控數(shù)據(jù)庫數(shù)據(jù)變化。

// MainViewModel.ets
public queryAlarmsTasker(callback: (alarms: Array< AlarmItem >) = > void) {
  let that = this;
  that.queryDatabaseAlarms(callback);
  let preference = GlobalContext.getContext().getObject('preference') as PreferencesHandler;
  preference.addPreferencesListener({
    onDataChanged() {
      that.queryDatabaseAlarms(callback);
    }
  } as PreferencesListener)
}

在AlarmList.ets中添加鬧鐘列表子組件,并綁定啟停、跳轉(zhuǎn)事件。

// AlarmList.ets
@Component
export default struct AlarmList {
  @Link alarmItems: Array< AlarmItem >;

  build() {
    List({ space: DimensionUtil.getVp($r('app.float.alarm_list_space')) }) {
      ForEach(this.alarmItems, (item: AlarmItem) = > {
        ListItem() {
          AlarmListItem({ alarmItem: item })
        }.onClick(() = > {
          router.pushUrl({ url: "pages/DetailIndex", params: { alarmItem: item } });
        })
      }, (item: AlarmItem) = > JSON.stringify(item))
    }
    .padding({
      left: DimensionUtil.getVp($r('app.float.alarm_list_content_distance')),
      right: DimensionUtil.getVp($r('app.float.alarm_list_content_distance'))
    })
    .listDirection(Axis.Vertical)
    .layoutWeight(CommonConstants.DEFAULT_LAYOUT_WEIGHT)
    .margin({ top: DimensionUtil.getVp($r('app.float.alarm_list_content_distance')) })
  }
}

添加鬧鐘

添加鬧鐘,點擊界面底部鬧鐘添加按鈕,跳轉(zhuǎn)到鬧鐘操作界面(新增鬧鐘)。

在MainIndex.ets中為添加按鈕綁定跳轉(zhuǎn)事件。

// MainIndex.ets
@Entry
@Component
struct MainIndex {
  ...
  build() {
    Column() {
	  ...
      Button() {
        Image($r('app.media.ic_add')).objectFit(ImageFit.Fill)
      }
      ...
      .onClick(() = > {
        router.pushUrl({ url: "pages/DetailIndex" });
      })
    }
    ...
  }
}

后臺代理提醒

后臺代理提醒,根據(jù)鬧鐘列表中的數(shù)據(jù)來設(shè)置(啟停)鬧鐘實例。

// MainViewModel.ets
// 開啟/關(guān)閉鬧鐘
public openAlarm(id: number, isOpen: boolean) {
  for (let i = 0; i < this.alarms.length; i++) {
    if (this.alarms[i].id === id) {
      this.alarms[i].isOpen = isOpen;
      if (isOpen) {
        this.reminderService.addReminder(this.alarms[i]);
      } else {
        this.reminderService.deleteReminder(this.alarms[i].id);
      }
      let preference = GlobalContext.getContext().getObject('preference') as PreferencesHandler;
      preference.set(CommonConstants.ALARM_KEY, JSON.stringify(this.alarms));
      break;
    }
  }
}

鬧鐘詳情界面

鬧鐘操作界面分為新增和修改界面,其中在修改界面可刪除鬧鐘。具體包括以下模塊:

  • 退出或保存詳情。
  • 設(shè)置鬧鐘時間。
  • 設(shè)置鬧鐘詳情。
  • 提供后臺代理提醒能力

退出或保存詳情

點擊左上角“x”圖標關(guān)閉操作界面,關(guān)閉鬧鐘操作界面子組件,點擊右上角“√”圖標,保存當前設(shè)置并關(guān)閉操作界面。

在DetailIndex.ets入口頁面中引入頭部組件BackContainer,自定義了返回按鈕和返回邏輯操作,添加確定(“√”)子組件,并綁定點擊事件。

// DetailIndex.ets
build()
{
  Column() {
    ...
    Button() {
      Image($r('app.media.ic_confirm')).objectFit(ImageFit.Fill)
    }
    .backgroundColor($r('app.color.trans_parent'))
    .width(DimensionUtil.getVp($r('app.float.title_button_size')))
    .height(DimensionUtil.getVp($r('app.float.title_button_size')))
    .onClick(() = > {
      this.viewModel.setAlarmRemind(this.alarmItem);
      router.back();
    })
    ...
  }
}

// BackContainer.ets
build() {
  Row() {
    ...
    Text(this.header)
      .fontSize(DimensionUtil.getFp($r('app.float.detail_title_font_size')))
      .lineHeight(DimensionUtil.getVp($r('app.float.title_line_height')))
      .margin({ left: DimensionUtil.getVp($r('app.float.title_margin')) })
      .fontColor($r('app.color.grey_divider'))
      .fontWeight(FontWeight.Bold)
    Blank()
    if (this.closer) {
      this.closer();
    }
  }
  .padding({
    left: DimensionUtil.getVp($r('app.float.title_horizon_margin')),
    right: DimensionUtil.getVp($r('app.float.title_horizon_margin'))
  })
  .height(DimensionUtil.getVp($r('app.float.page_title_height')))
  .width(CommonConstants.FULL_LENGTH)
}

設(shè)置鬧鐘時間

設(shè)置鬧鐘提醒時間,在鬧鐘操作界面可通過滑動選擇器設(shè)置鬧鐘的提醒時間(包括:時段、小時、分鐘)。詳情頁DetailIndex.ets中添加鬧鐘時間選擇器子組件DatePickArea.ets。

// DatePickArea.ets
@Component
export default struct DatePickArea {
  build() {
    Stack({ alignContent: Alignment.Center }) {
      Row() {
        ForEach(DetailConstant.DAY_DATA, (item: DayDataBean) = > {
          TextPicker({ range: item.data, selected: item.delSelect })
            .layoutWeight(CommonConstants.DEFAULT_LAYOUT_WEIGHT)
            .backgroundColor($r('app.color.grey_light'))
            .onChange((value: string, index: number) = > {
              item.delSelect = index;
            })
        }, (item: DayDataBean) = > JSON.stringify(item))
      }
    }
    .height(DimensionUtil.getVp($r('app.float.date_picker_height')))
    .padding({
      left: DimensionUtil.getVp($r('app.float.date_picker_padding_horizon')),
      right: DimensionUtil.getVp($r('app.float.date_picker_padding_horizon'))
    })
  }
}

設(shè)置鬧鐘詳情

點擊詳情頁DetailIndex.ets設(shè)置條目組件SettingItem.ets,支持設(shè)置鬧鐘重復時間、鬧鐘名稱、重復次數(shù)和鬧鈴時長。

// SettingItem.ets
build() {
  Column() {
    ForEach(this.settingInfo, (item: AlarmSettingBean, index: number | undefined) = > {
      Divider()
      ...
      Row() {
        Text(item.title)...
        Text(item.content)...
        Image($r('app.media.ic_right'))...
      }
      ...
      .onClick(() = > {
        this.showSettingDialog(item.sType);
      })
    }, (item: AlarmSettingBean, index: number | undefined) = > JSON.stringify(item) + index)
  }
  ...
}

提供后臺代理提醒能力

導入系統(tǒng)提醒服務類ReminderService.ets,它由系統(tǒng)后臺代理提醒能力封裝,支持新增、修改、刪除系統(tǒng)鬧鐘功能,在設(shè)置、刪除鬧鐘后同步更新到輕量級數(shù)據(jù)庫中并刷新主頁頁面。

// DetailViewModel.ets
public async setAlarmRemind(alarmItem: AlarmItem) {
  alarmItem.hour = this.getAlarmTime(CommonConstants.DEFAULT_SINGLE);
  alarmItem.minute = this.getAlarmTime(CommonConstants.DEFAULT_DATA_PICKER_HOUR_SELECTION);
  let index = await this.findAlarmWithId(alarmItem.id);
  if (index !== CommonConstants.DEFAULT_NUMBER_NEGATIVE) { // 已存在,刪除原有提醒
    this.reminderService.deleteReminder(alarmItem.id);
  } else { // 不存在,以數(shù)據(jù)長度為notificationId新增鬧鐘數(shù)據(jù)
    index = this.alarms.length;
    alarmItem.notificationId = index;
    this.alarms.push(alarmItem);
  }
  this.reminderService.addReminder(alarmItem, (newId: number) = > {
    alarmItem.id = newId;
    alarmItem.isOpen = true;
    this.alarms[index] = alarmItem;
    let preference = GlobalContext.getContext().getObject('preference') as PreferencesHandler;
    preference.set(CommonConstants.ALARM_KEY, JSON.stringify(this.alarms));
  })
}

public async removeAlarmRemind(id: number) {
  this.reminderService.deleteReminder(id);
  let index = await this.findAlarmWithId(id);
  if (index !== CommonConstants.DEFAULT_NUMBER_NEGATIVE) {
    this.alarms.splice(index, CommonConstants.DEFAULT_SINGLE);
  }
  let preference = GlobalContext.getContext().getObject('preference') as PreferencesHandler;
  preference.set(CommonConstants.ALARM_KEY, JSON.stringify(this.alarms));
}

審核編輯 黃宇

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

    關(guān)注

    57

    文章

    2363

    瀏覽量

    42888
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1977

    瀏覽量

    30264
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3725

    瀏覽量

    16375
收藏 人收藏

    評論

    相關(guān)推薦

    鴻蒙OS開發(fā)實例:【頁面傳值跳轉(zhuǎn)】

    本篇主要介紹如何在HarmonyOS中,在頁面跳轉(zhuǎn)之間如何傳值 HarmonyOS頁面指的是帶有@Entry裝飾器的文件,其不能獨自存在,必須依賴UIAbility這樣的組件容器
    的頭像 發(fā)表于 03-29 20:16 ?2277次閱讀
    鴻蒙OS<b class='flag-5'>開發(fā)</b>實例:【<b class='flag-5'>頁面</b>傳值跳轉(zhuǎn)】

    HarmonyOS開發(fā)案例:【排行榜頁面

    本課程使用聲明式語法和組件化基礎(chǔ)知識,搭建一個可刷新的排行榜頁面。在排行榜頁面中,使用循環(huán)渲染控制語法來實現(xiàn)列表數(shù)據(jù)渲染,使用@Builder創(chuàng)建排行列表布局內(nèi)容,使用裝飾器@State、@Prop、@Link來管理組件狀態(tài)。
    的頭像 發(fā)表于 04-30 16:16 ?2011次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)</b>案例:【排行榜<b class='flag-5'>頁面</b>】

    HarmonyOS開發(fā)案例:【UIAbility內(nèi)和UIAbility間頁面的跳轉(zhuǎn)】

    基于Stage模型下的UIAbility開發(fā),實現(xiàn)UIAbility內(nèi)和UIAbility間頁面的跳轉(zhuǎn)。
    的頭像 發(fā)表于 05-09 15:06 ?1596次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)</b>案例:【UIAbility內(nèi)和UIAbility間<b class='flag-5'>頁面</b>的跳轉(zhuǎn)】

    HarmonyOS應用開發(fā)頁面開發(fā)

    該文檔帶領(lǐng)大家手把手開發(fā)頁面,包含的知識有:1、XML編寫頁面;2、加載XML布局;3、創(chuàng)建Feature Ability;4、代碼編寫界面;5、實現(xiàn)頁面跳轉(zhuǎn);6、跨設(shè)備啟動FA;注:
    發(fā)表于 09-10 17:44

    HarmonyOS應用開發(fā)】Hello HarmonyOS到Hi HarmonyOS(3)

    頁面跳轉(zhuǎn)。創(chuàng)建第二個頁面新建一個Empty Feature Ability(Java),看意思是一個空的元程序,其實不是,它里面還有模板的一些代碼,后續(xù)我們可以刪除重寫。頁面名稱
    發(fā)表于 11-11 09:25

    【資料】HarmonyOS應用開發(fā)頁面開發(fā)

    HarmonyOS應用開發(fā)頁面開發(fā)回復帖子查看資料下載鏈接:[hide][/hide]
    發(fā)表于 08-12 11:53

    #HarmonyOS征文# HarmonyOS實戰(zhàn)—實現(xiàn)注冊登錄和修改密碼頁面

    1. 注冊登錄頁面設(shè)置的要求如下: 新建項目:TextApplication上面的數(shù)值單位都是 px ,所以要轉(zhuǎn)換成 vp 和 fp在 1920*1080 分辨率下,1px = 1/3vpP40
    發(fā)表于 08-13 17:23

    HarmonyOS應用開發(fā)-ClickableImageJsDome體驗

    的設(shè)計。本DEMO主要涉及到的頁面元素有有image,image-animator,展現(xiàn)圖片資源在界面交互中幾種常見運用效果。旨在幫助開發(fā)人員快速了解HarmonyOS JSUI應用的開發(fā)
    發(fā)表于 06-18 11:42

    HarmonyOS/OpenHarmony應用開發(fā)-DevEco Studio新建項目的整體說明

    ,是開發(fā)者需要優(yōu)先了解熟悉*附件:HarmonyOSOpenHarmony應用開發(fā)-DevEco Studio新建項目的整體說明.docx
    發(fā)表于 09-15 16:51

    華為開發(fā)者分論壇HarmonyOS學生公開課-如何學習HarmonyOS應用開發(fā)

    2021華為開發(fā)者分論壇HarmonyOS學生公開課-如何學習HarmonyOS應用開發(fā)
    的頭像 發(fā)表于 10-24 11:09 ?2144次閱讀
    華為<b class='flag-5'>開發(fā)</b>者分論壇<b class='flag-5'>HarmonyOS</b>學生公開課-如何學習<b class='flag-5'>HarmonyOS</b>應用<b class='flag-5'>開發(fā)</b>?

    HarmonyOS 應用開發(fā)-ClickableImageJsDome體驗

    的設(shè)計。本DEMO主要涉及到的頁面元素有有image,image-animator,展現(xiàn)圖片資源在界面交互中幾種常見運用效果。旨在幫助開發(fā)人員快速了解 HarmonyOS JSUI應用的開發(fā)
    的頭像 發(fā)表于 06-20 00:24 ?1119次閱讀
    <b class='flag-5'>HarmonyOS</b> 應用<b class='flag-5'>開發(fā)</b>-ClickableImageJsDome體驗

    面向HarmonyOS開發(fā)者的HarmonyOS 3.0 Beta介紹

    2021年10月,我們面向開發(fā)者發(fā)布了HarmonyOS 3.0 Developer Preview版,但開發(fā)的腳步永不停歇,現(xiàn)在我們又更新了API版本,配套發(fā)布了HarmonyOS
    的頭像 發(fā)表于 07-06 20:34 ?3314次閱讀

    小白指南:手把手教你用低代碼開發(fā)一個應用頁面

    一 什么是低代碼開發(fā) 在了解低代碼開發(fā)之前,我們先看看使用低代碼開發(fā)的效果。 低代碼開發(fā)效果示例 低代碼開發(fā)是DevEco Studio為
    的頭像 發(fā)表于 02-17 09:10 ?1192次閱讀

    HarmonyOS開發(fā)案例:【Ability內(nèi)頁面間的跳轉(zhuǎn)】

    基于Stage模型下的Ability開發(fā),實現(xiàn)Ability內(nèi)頁面間的跳轉(zhuǎn)和數(shù)據(jù)傳遞。
    的頭像 發(fā)表于 05-09 10:39 ?575次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)</b>案例:【Ability內(nèi)<b class='flag-5'>頁面</b>間的跳轉(zhuǎn)】

    HarmonyOS Web頁面加載的原理和優(yōu)化方法

    在移動互聯(lián)網(wǎng)時代,應用的頁面渲染速度對于用戶體驗至關(guān)重要。相對于原生頁面,Web頁面的性能存在多方面的技術(shù)挑戰(zhàn)。本文以HarmonyOS的ArkWeb組件為基礎(chǔ),介紹了Web
    的頭像 發(fā)表于 12-05 15:14 ?240次閱讀
    <b class='flag-5'>HarmonyOS</b> Web<b class='flag-5'>頁面</b>加載的原理和優(yōu)化方法
    主站蜘蛛池模板: 欧美fxxx| 日本久久久| 私人玩物在线观看| 成人影片迅雷下载| 熟女人妻AV五十路六十路| 久久国产热视频99rev6| 5580免费午夜福利院| 欧美内射AAAAAAXXXXX| 国产 精品 亚洲 欧美 高清| 色欲久久精品AV无码| 国内精品乱码卡一卡2卡三卡| 伊人yinren6综合网色狠狠| 麻豆国产原创中文AV网站| 76人遣返航班上71人呈阳性| 亚洲黄色免费观看| 免费国产成人高清在线观看视频| 成 人 动漫3d 在线看| 亚洲高清在线视频| 美女内射少妇一区二区四区| 好男人午夜www视频在线观看| 99re热有精品国产| 色色色999| 欧美日韩一级黄色片| 久久亚洲精品成人综合| 工口肉肉彩色不遮挡| ABO成结顶腔锁住| 校花爽好大快深点h| 久啪久久全部视频在线| 大胸美女被cao哭| 亚洲欧美偷拍视频一区| 暖暖的视频完整视频免费韩国| 国产 亚洲 中文在线 字幕| ewp系列虐杀在线视频| 亚洲精品电影天堂网| 无人区日本电影在线观看| 免费夜色污私人影院网站| 国产精品一区二区三区免费| 中国人泡妞xxxxxxxx19| 婷婷综合亚洲爱久久| 内射少妇36P亚洲区| 蜜桃视频一区二区|