2024-08-26

HarmonyOS Next應用開發(fā):構建第一個應用

本文通過構建一個簡單的具有頁面跳轉帖池、返回功能的應用,快速了解HarmonyOS應用皮仁,以下我們基于Stage模型構建第一個ArkTS應用漠吻。

創(chuàng)建項目

這里認為你已經配置好了開發(fā)環(huán)境,下面我們開始創(chuàng)建項目:
1.若首次打開DevEco Studio活孩,請點擊Create Project創(chuàng)建工程。


如果已經打開了一個工程乖仇,請在菜單欄選擇File > New > Create Project來創(chuàng)建一個新工程憾儒。



2.選擇Application應用開發(fā),選擇模板“Empty Ability”乃沙,點擊Next進行下一步配置起趾。



3.進入配置工程界面,這里填應用的基本信息警儒。

4.點擊Finish训裆,工具會自動生成示例代碼和相關資源眶根,等待工程創(chuàng)建完成。

編寫代碼

在“Project”窗口边琉,點擊“entry > src > main > ets > pages”属百,打開“Index.ets”文件,進行頁面的編寫:

@Entry
@Component
struct Index {
  @State message: string = '你好变姨,鴻蒙'

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
        Button() {
          Text('第二個頁面')
            .fontSize(30)
            .fontWeight(FontWeight.Bold)
        }
        .type(ButtonType.Capsule)
        .margin({
          top: 20
        })
        .backgroundColor('#0D9FFB')
        .width('50%')
        .height('5%')
      }
      .width('100%')
    }
    .height('100%')
  }
}

在編輯窗口右上角的側邊工具欄族扰,點擊Previewer,打開預覽器可以進行頁面預覽定欧。



新建第二個頁面文件渔呵。在“Project”窗口,打開“entry > src > main > ets”忧额,右鍵點擊“pages”文件夾厘肮,選擇“New > ArkTS File”愧口,創(chuàng)建名為“Next”的文件:

@Entry
@Component
struct Second {
  @State message: string = '我是第二個頁面'

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
        Button() {
          Text('返回')
            .fontSize(25)
            .fontWeight(FontWeight.Bold)
        }
        .type(ButtonType.Capsule)
        .margin({
          top: 20
        })
        .backgroundColor('#0D9FFB')
        .width('40%')
        .height('5%')
      }
      .width('100%')
    }
    .height('100%')
  }
}

配置第二個頁面的路由睦番。在“Project”窗口,打開“entry > src > main > resources > base > profile”耍属,在main_pages.json文件中的“src”下配置第二個頁面的路由“pages/Next”:

{
  "src": [
    "pages/Index",
    "pages/Next"
  ]
}

也可以在右鍵點擊“pages”文件夾時托嚣,選擇“New > Page >New Page”,命名為“Next”厚骗,點擊“Finish”完成第二個頁面的創(chuàng)建示启。使用此種方式則無需再進行下文中第二個頁面路由的手動配置。

簡單地實現下頁面之間的跳轉及返回领舰,下面是第一個頁面跳轉到第二個頁面:

import router from '@ohos.router'

@Entry
@Component
struct Index {
  @State message: string = '你好夫嗓,鴻蒙'

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
        Button() {
          Text('第二個頁面')
            .fontSize(30)
            .fontWeight(FontWeight.Bold)
        }
        .type(ButtonType.Capsule)
        .margin({
          top: 20
        })
        .backgroundColor('#0D9FFB')
        .width('50%')
        .height('5%')
        .onClick(()=>{
          console.info(`成功點擊'第二個頁面'按鈕.`)
          router.pushUrl({ url:'pages/Next'})
            .then(() => {
              console.info(`成功跳轉到第二個頁面.`)
            })
            .catch((err) => {
              console.info(`沒能跳轉到第二個頁面.code is ${err.code}, message is ${err.message}`)
            })
        })
      }
      .width('100%')
    }
    .height('100%')
  }
}

第二個頁面返回到第一個頁面:

import router from '@ohos.router'

@Entry
@Component
struct Second {
  @State message: string = '我是第二個頁面'

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
        Button() {
          Text('返回')
            .fontSize(25)
            .fontWeight(FontWeight.Bold)
        }
        .type(ButtonType.Capsule)
        .margin({
          top: 20
        })
        .backgroundColor('#0D9FFB')
        .width('40%')
        .height('5%')
        .onClick(()=>{
          console.info(`成功點擊'返回'按鈕.`)
          try {
            router.back()
            console.info(`成功返回到第一頁.`)
          } catch (err) {
            console.info(`沒能返回到第一頁.code is ${err.code}, message is ${err.message}`)
          }
        })
      }
      .width('100%')
    }
    .height('100%')
  }
}

使用模擬器運行

沒有真機,安裝了個模擬器運行冲秽,不大好用舍咖,對比Android或者iOS的模擬器差太遠了。



總結

通過構建第一個HarmonyOS應用锉桑,可以發(fā)現DevEco Studio和Android Studio使用起來很像排霉,本文中使用的ArkTS語言是聲明式的,嗯民轴,很容易又想到Flutter攻柠,如果你有Android,或者Flutter后裸,或者前端相關開發(fā)經驗瑰钮,相信上手這門新技術會非常容易。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末微驶,一起剝皮案震驚了整個濱河市浪谴,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖较店,帶你破解...
    沈念sama閱讀 212,080評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件士八,死亡現場離奇詭異,居然都是意外死亡梁呈,警方通過查閱死者的電腦和手機婚度,發(fā)現死者居然都...
    沈念sama閱讀 90,422評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來官卡,“玉大人蝗茁,你說我怎么就攤上這事⊙爸洌” “怎么了哮翘?”我有些...
    開封第一講書人閱讀 157,630評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長毛秘。 經常有香客問我饭寺,道長,這世上最難降的妖魔是什么叫挟? 我笑而不...
    開封第一講書人閱讀 56,554評論 1 284
  • 正文 為了忘掉前任艰匙,我火速辦了婚禮,結果婚禮上抹恳,老公的妹妹穿的比我還像新娘员凝。我一直安慰自己,他們只是感情好奋献,可當我...
    茶點故事閱讀 65,662評論 6 386
  • 文/花漫 我一把揭開白布健霹。 她就那樣靜靜地躺著,像睡著了一般瓶蚂。 火紅的嫁衣襯著肌膚如雪糖埋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,856評論 1 290
  • 那天扬跋,我揣著相機與錄音阶捆,去河邊找鬼。 笑死钦听,一個胖子當著我的面吹牛洒试,可吹牛的內容都是我干的。 我是一名探鬼主播朴上,決...
    沈念sama閱讀 39,014評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼垒棋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了痪宰?” 一聲冷哼從身側響起叼架,我...
    開封第一講書人閱讀 37,752評論 0 268
  • 序言:老撾萬榮一對情侶失蹤畔裕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后乖订,有當地人在樹林里發(fā)現了一具尸體扮饶,經...
    沈念sama閱讀 44,212評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,541評論 2 327
  • 正文 我和宋清朗相戀三年乍构,在試婚紗的時候發(fā)現自己被綠了甜无。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,687評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡哥遮,死狀恐怖岂丘,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情眠饮,我是刑警寧澤奥帘,帶...
    沈念sama閱讀 34,347評論 4 331
  • 正文 年R本政府宣布,位于F島的核電站仪召,受9級特大地震影響寨蹋,放射性物質發(fā)生泄漏。R本人自食惡果不足惜返咱,卻給世界環(huán)境...
    茶點故事閱讀 39,973評論 3 315
  • 文/蒙蒙 一钥庇、第九天 我趴在偏房一處隱蔽的房頂上張望牍鞠。 院中可真熱鬧咖摹,春花似錦、人聲如沸难述。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,777評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽胁后。三九已至店读,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間攀芯,已是汗流浹背屯断。 一陣腳步聲響...
    開封第一講書人閱讀 32,006評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留侣诺,地道東北人殖演。 一個月前我還...
    沈念sama閱讀 46,406評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像年鸳,于是被迫代替她去往敵國和親趴久。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,576評論 2 349

推薦閱讀更多精彩內容