HarmonyOS Developer——鴻蒙【構建第一個JS應用(FA模型)】

  • 創建JS工程

  • JS工程目錄結構

  • 構建第一個頁面

  • 構建第二個頁面

  • 實現頁面間的跳轉

  • 使用真機運行應用

說明

為確保運行效果,本文以使用DevEco Studio 3.1 Release版本為例,點擊此處獲取下載鏈接。

創建JS工程

  1. 若首次打開DevEco Studio,請點擊Create Project創建工程。如果已經打開了一個工程,請在菜單欄選擇File > New > Create Project來創建一個新工程。
  2. 選擇Application應用開發(本文以應用開發為例,Atomic Service對應為元服務開發),選擇模板“Empty Ability”,點擊Next進行下一步配置。

在這里插入圖片描述

  1. 進入配置工程界面,Compile SDK選擇“3.0.0(API 8) ”(Compile SDK選擇“3.1.0(API 9) ”時注意同步選擇 Model 為“FA”,此處以選擇“3.0.0(API 8) ”為例),Language選擇“JS”,其他參數保持默認設置即可。
    在這里插入圖片描述

說明

DevEco Studio V2.2 Beta1及更高版本支持使用JS低代碼開發方式。

低代碼開發方式具有豐富的UI界面編輯功能,通過可視化界面開發方式快速構建布局,可有效降低開發者的上手成本并提升開發者構建UI界面的效率。

如需使用低代碼開發方式,請打開上圖中的Enable Super Visual開關。

  1. 點擊Finish,工具會自動生成示例代碼和相關資源,等待工程創建完成。

在這里插入圖片描述

  • entry:HarmonyOS工程模塊,編譯構建生成一個HAP包。

    • src > main > js:用于存放js源碼。
    • src > main > js > MainAbility:應用/服務的入口。
    • src > main > js > MainAbility > i18n:用于配置不同語言場景資源內容,比如應用文本詞條、圖片路徑等資源。
    • src > main > js > MainAbility > pages:MainAbility包含的頁面。
    • src > main > js > MainAbility > app.js:承載Ability生命周期。
    • src > main > resources:用于存放應用/服務所用到的資源文件,如圖形、多媒體、字符串、布局文件等。關于資源文件,詳見資源限定與訪問。
    • src > main > config.json:模塊配置文件。主要包含HAP包的配置信息、應用/服務在具體設備上的配置信息以及應用/服務的全局配置信息。具體的配置文件說明,詳見應用配置文件(FA模型)。
    • build-profile.json5:當前的模塊信息、編譯信息配置項,包括buildOption、targets配置等。其中targets中可配置當前運行環境,默認為HarmonyOS。
    • hvigorfile.ts:模塊級編譯構建任務腳本,開發者可以自定義相關任務和代碼實現。
  • build-profile.json5:應用級配置信息,包括簽名、產品配置等。

  • hvigorfile.ts:應用級編譯構建任務腳本。

構建第一個頁面

  1. 使用文本組件。

    工程同步完成后,在“Project”窗口,點擊“entry > src > main > js > MainAbility > pages> index”,打開“index.hml”文件,設置Text組件內容。“index.hml”文件的示例如下:

    <!-- index.hml -->
    <div class="container">    
    <text class="title">        Hello World    
    </text>
    </div>
    
  2. 添加按鈕,并綁定onclick方法。

    在默認頁面基礎上,我們添加一個button類型的input組件,作為按鈕響應用戶點擊,從而實現跳轉到另一個頁面。“index.hml”文件的示例代碼如下:

    <!-- index.hml --><div class="container">    <text class="title">        Hello World    </text>
    <!-- 添加按鈕,值為Next,并綁定onclick方法-->    <input class="btn" type="button" value="Next" onclick="onclick"></input></div>
    
  3. 設置頁面樣式。

    在“Project”窗口,點擊“entry > src > main > js > MainAbility > pages> index”,打開“index.css”文件,可以對頁面中文本、按鈕設置寬高、字體大小、間距等樣式。“index.css”文件的示例如下:

    /* index.css */
    .container {    display: flex;    flex-direction: column;    justify-content: center;    align-items: center;    left: 0px;    top: 0px;    width: 100%;    height: 100%;
    }.title {   font-size: 100px;    font-weight: bold;    text-align: center;    width: 100%;    margin: 10px;
    }.btn {    font-size: 60px;    font-weight: bold;    text-align: center;    width: 40%;    height: 5%;    margin-top: 20px;
    }
    
  4. 在編輯窗口右上角的側邊工具欄,點擊Previewer,打開預覽器。第一個頁面效果如下圖所示:

image.png

構建第二個頁面

  1. 創建第二個頁面。

    在“Project”窗口,打開“entry > src > main > js > MainAbility”,右鍵點擊“pages”文件夾,選擇“New > Page”,命名為“second”,點擊“Finish”,即完成第二個頁面的創建。可以看到文件目錄結構如下:

image.png

  1. 添加文本及按鈕。

    參照第一個頁面,在第二個頁面添加文本、按鈕及點擊按鈕綁定頁面返回等。“second.hml”文件的示例如下:

    <!-- second.hml --><div class="container">    <text class="title">        Hi there    </text>
    <!-- 添加按鈕,值為Back,并綁定back方法-->    <input class="btn" type="button" value="Back" onclick="back"></input></div>
    
  2. 設置頁面樣式 second.css”文件的示例如下:

    /* second.css */.container {    display: flex;    flex-direction: column;    justify-content: center;    align-items: center;    left: 0px;    top: 0px;    width: 100%;    height: 100%;}
    .title {    font-size: 100px;    font-weight: bold;    text-align: center;    width: 100%;    margin: 10px;}
    .btn {    font-size: 60px;    font-weight: bold;    text-align: center;    width: 40%;    height: 5%;    margin-top: 20px;}
    

實現頁面間的跳轉

頁面間的導航可以通過頁面路由router來實現。頁面路由router根據頁面url找到目標頁面,從而實現跳轉。使用頁面路由請導入router模塊。

  1. 第一個頁面跳轉到第二個頁面。

    在第一個頁面中,跳轉按鈕綁定onclick方法,點擊按鈕時跳轉到第二頁。“index.js”示例如下:

    // index.js// 導入頁面路由模塊import router from '@ohos.router';
    export default {    onclick: function () {        router.push({            url: "pages/second/second"        })    }}
    
  2. 第二個頁面返回到第一個頁面。

    在第二個頁面中,返回按鈕綁定back方法,點擊按鈕時返回到第一頁。“second.js”示例如下:

    // second.js// 導入頁面路由模塊import router from '@ohos.router';
    export default {    back: function () {        router.back()    }}
    
  3. 打開index文件夾下的任意一個文件,點擊預覽器中的按鈕進行刷新。效果如下圖所示:

image.png

使用真機運行應用

運行HarmonyOS應用可以使用遠程模擬器和物理真機設備,區別在于使用遠程模擬器運行應用不需要對應用進行簽名。接下來將以物理真機設備為例,介紹HarmonyOS應用的運行方法,關于模擬器的使用請參考使用Remote Emulator運行應用/服務。

  1. 將搭載HarmonyOS系統的真機與電腦連接。具體指導及要求,可查看使用本地真機運行應用/服務。
  2. 點擊File > Project Structure… > Project > SigningConfigs界面勾選“Support HarmonyOS”和“Automatically generate signature”,點擊界面提示的“Sign In”,使用華為帳號登錄。等待自動簽名完成后,點擊“OK”即可。如下圖所示:

image.png

在編輯窗口右上角的工具欄,點擊按鈕運行。效果如下圖所示

image.png

恭喜您已經使用JS語言開發(FA模型)完成了第一個HarmonyOS應用,快來探索更多的HarmonyOS功能吧。


華為鴻蒙官方文檔地址:構建第一個JS應用(FA模型)-快速入門-入門-HarmonyOS應用開發


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/news/209941.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/209941.shtml
英文地址,請注明出處:http://en.pswp.cn/news/209941.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

蝦皮什么商品好賣

在蝦皮&#xff08;Shopee&#xff09;平臺上&#xff0c;有許多商品類別都表現出了較好的銷售情況。然而&#xff0c;隨著時間和地區的變化&#xff0c;熱銷商品也會有所不同。本文將介紹一些在蝦皮平臺上表現較好的商品類別&#xff0c;并提供一些建議&#xff0c;幫助您在蝦…

交換機基本原理和配置

目錄 一、數據鏈路層功能 二、交換機的工作原理 三、交換機的四大功能 一、數據鏈路層功能 位于網絡層與物理層之間 數據鏈路的建立、維護與拆除幀包裝、幀傳輸、幀同步幀的差錯恢復流量控制 二、交換機的工作原理 交換機通過數據幀的源 MAC 地址&#xff0c;學習到交換機端…

偶數位字符前置算法

題目描述&#xff1a; 題目描述 編寫函數void myshift(char *s),在不打亂s原本相對位置情況下&#xff0c;將偶數位上的字符全部挪到奇數位字符的前面。輸入格式 輸入一個字符串 s保證輸入字符串 s 的長度大于等于1小于等于100輸出格式 輸出修改后的字符串 s。輸入樣例1 01234…

【算法】直接插入排序

目錄 1. 說明2. 舉個例子3. java代碼示例4. java示例截圖 1. 說明 1.直接插入排序的方式和打牌一樣&#xff0c;剛開始數組為空 2.拿到一個數字后從左到右將它與數組中的每一個數字進行比較&#xff0c;然后插入合適的位置 3.到最后&#xff0c;數組按照既定的順序排序好 2. 舉…

OpenCV基礎篇

OpenCV基礎篇 一、圖像、視頻讀取二、cv::Mat()數據類型三、繪圖功能四、鼠標響應事件五、圖像像素讀寫六、圖像像素運算七、顏色空間轉換八、圖像幾何變換九、圖像濾波十、圖像二值化十一、圖像梯度十二、Canny邊緣檢測十三、圖像形態學十四、圖像直方圖十五、霍夫變換十六、分…

線程池的拒絕策略

文章目錄 線程池的拒絕策略AbortPolicy拒絕策略&#xff1a;CallerRunsPolicy拒絕策略&#xff1a;DiscardOldestPolicy拒絕策略&#xff1a;DiscardPolicy拒絕策略&#xff1a; 線程池的拒絕策略 若在線程池當中的核心線程數已被用完且阻塞隊列已排滿&#xff0c;則此時線程池…

springboot_ssm_java學位論文盲審系統

本系統主要實現用戶登錄驗證&#xff0c;用戶使用郵箱&#xff0c;密碼和選擇身份進行登錄&#xff0c;用戶查看個人中心&#xff0c;提交論文&#xff0c;發表留言和問題反饋。用戶在線注冊。學生模塊功能實現&#xff1a;學生注冊&#xff0c;查看信息&#xff0c;修改資料&a…

智能優化算法應用:基于魚鷹算法無線傳感器網絡(WSN)覆蓋優化 - 附代碼

智能優化算法應用&#xff1a;基于魚鷹算法無線傳感器網絡(WSN)覆蓋優化 - 附代碼 文章目錄 智能優化算法應用&#xff1a;基于魚鷹算法無線傳感器網絡(WSN)覆蓋優化 - 附代碼1.無線傳感網絡節點模型2.覆蓋數學模型及分析3.魚鷹算法4.實驗參數設定5.算法結果6.參考文獻7.MATLAB…

藍橋杯航班時間

藍橋杯其他真題點這里&#x1f448; //飛行時間 - 時差 已過去的時間1 //飛行時間 時差 已過去的時間2 //兩個式子相加會發現 飛行時間 兩段時間差的和 >> 1import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;public cl…

Android藍牙協議棧fluoride(四) - 設備管理(bt interface)

設備管理的接口實現了藍牙的開/關、屬性設置、發現設備、獲取profile的接口等等。 接口聲明 接口聲明如下&#xff1a; // include/hardware/bluetooth.h typedef struct {// 打開接口并注冊回調函數int (*init)(bt_callbacks_t* callbacks, bool is_atv);// 關閉接口void (…

目標檢測YOLO系列從入門到精通技術詳解100篇-【圖像處理】邊緣檢測

目錄 知識儲備 算法原理 邊緣檢測(Canny算子) Canny算子邊緣檢測流程 應用案例

[Linux] LAMP架構

一、LAMP架構架構的概述 LAMP 架構是一種流行的 Web 應用程序架構&#xff0c;它的名稱是由四個主要組件的首字母組成的&#xff1a; Linux&#xff08;操作系統&#xff09;&#xff1a; 作為操作系統&#xff0c;Linux 提供了服務器的基礎。它負責處理硬件資源、文件系統管理…

解讀 | 阿里通義千問模型全尺寸開源 “誠意滿滿“背后的名與利

大家好&#xff0c;我是極智視界&#xff0c;歡迎關注我的公眾號&#xff0c;獲取我的更多前沿科技分享 邀您加入我的知識星球「極智視界」&#xff0c;星球內有超多好玩的項目實戰源碼和資源下載&#xff0c;鏈接&#xff1a;https://t.zsxq.com/0aiNxERDq 12 月 1 日阿里開源…

基于Web和深度學習的辣椒檢測產量預測系統

1.研究背景與意義 項目參考AAAI Association for the Advancement of Artificial Intelligence 研究背景與意義 辣椒是一種重要的經濟作物&#xff0c;被廣泛種植和消費。然而&#xff0c;辣椒的產量預測一直是農業生產中的重要問題。準確地預測辣椒的產量可以幫助農民合理安…

第10節:Vue3 論點

如何在UniApp中使用Vue3框架創建論點&#xff1a; <template> <view> <text>{{ segments[currentSegment].content }}</text> </view> </template> <script> import { ref, computed } from vue; export default { setup…

高項備考葵花寶典-項目進度管理輸入、輸出、工具和技術(下,很詳細考試必過)

項目進度管理的目標是使項目按時完成。有效的進度管理是項目管理成功的關鍵之一&#xff0c;進度問題在項目生命周期內引起的沖突最多。 小型項目中&#xff0c;定義活動、排列活動順序、估算活動持續時間及制定進度模型形成進度計劃等過程的聯系非常密切&#xff0c;可以視為一…

【論文筆記】FSD V2: Improving Fully Sparse 3D Object Detection with Virtual Voxels

原文鏈接&#xff1a;https://arxiv.org/abs/2308.03755 1. 引言 完全稀疏檢測器在基于激光雷達的3D目標檢測中有較高的效率和有效性&#xff0c;特別是對于長距離場景而言。 但是&#xff0c;由于點云的稀疏性&#xff0c;完全稀疏檢測器面臨的一大困難是中心特征丟失&…

vFW搭建IRF

正文共&#xff1a;2328字 40圖&#xff0c;預估閱讀時間&#xff1a;5 分鐘 IRF&#xff08;Intelligent Resilient Framework&#xff0c;智能彈性架構&#xff09;技術通過將多臺設備連接在一起&#xff0c;虛擬化成一臺設備&#xff0c;集成多臺設備的硬件資源和軟件處理能…

C++如何通過調用ffmpeg接口對H265文件進行編碼和解碼

要對H265文件進行編碼和解碼&#xff0c;需要使用FFmpeg庫提供的相關API。以下是一個簡單的C程序&#xff0c;演示如何使用FFmpeg進行H265文件的編碼和解碼&#xff1a; 編碼&#xff1a; #include <cstdlib> #include <cstdio> #include <cstring> #inclu…

兩個月軟考-高項上岸

文章目錄 前言結緣軟考功虧一簣有始有終2個月計劃資料部分計劃截圖 總結 前言 我們看小說或者電視劇電影都會看到這樣的情節&#xff0c;主角一開始錦衣玉食&#xff0c;突然家道中落&#xff0c;啥都沒了&#xff0c;主角再一路奮起重新找回了屬于自己的一切&#xff1b;還有…