那曲檬骨新材料有限公司

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

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

3天內不再提示

鴻蒙開發學習:【OpenHarmony HAR】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-03-18 16:27 ? 次閱讀

OpenHarmony js/ts三方庫使用的是OpenHarmony靜態共享包,即HAR(Harmony Archive),可以包含js/ts代碼、c++庫、資源和配置文件。通過HAR,可以實現多個模塊或者多個工程共享ArkUI組件、資源等相關代碼。HAR不同于HAP,不能獨立安裝運行在設備上,只能作為應用模塊的依賴項被引用。

如何安裝OpenHarmony HAR

引用三方HAR,包括從倉庫進行安裝和從本地庫模塊中進行安裝兩種方式。

引用倉庫安裝的HAR:

引用ohpm倉中的HAR,首先需要設置三方HAR的倉庫信息,DevEco Studio默認倉庫地址是[ohpm],如果您想設置自定義倉庫,請在DevEco Studio的Terminal窗口執行如下命令進行設置(執行命令前,請確保將DevEco Studio中ohpm安裝地址配置在“環境變量-系統變量-PATH”中):

ohpm config set registry=your_registry1,your_registry2

說明:ohpm支持多個倉庫地址,采用英文逗號分隔。 然后通過如下兩種方式設置三方包依賴信息:

  • 方式一:在Terminal窗口中,執行如下命令安裝三方包,DevEco Studio會自動在工程的oh-package.json5中自動添加三方包依賴。
ohpm install @ohos/lottie
  • 方式二:在工程的oh-package.json5中設置三方包依賴,配置示例如下:
"dependencies": { "@ohos/lottie": "^2.0.0"}

依賴設置完成后,需要執行ohpm install命令安裝依賴包,依賴包會存儲在工程的oh_modules目錄下。

ohpm install

引用本地庫模塊的文件和資源:

  • 方式一:在Terminal窗口中,執行如下命令進行安裝,并會在oh-package5.json中自動添加依賴。
ohpm install ../library
  • 方式二:在工程的oh-package.json5中設置三方包依賴,配置示例如下:
"dependencies": {
   "@ohos/library": "file:../library"
}

依賴設置完成后,需要執行ohpm install命令安裝依賴包,依賴包會存儲在工程的oh_modules目錄下。

ohpm install

在引用OpenHarmony HAR時,請注意以下事項:

  • 當前只支持在模塊和工程下的oh-package.json5文件中聲明dependencies依賴,才會被當做OpenHarmony依賴使用,并在編譯構建過程中進行相應的處理。
  • 引用的模塊的compileSdkVersion不能低于其依賴的OpenHarmony ohpm三方包(可在oh_modules目錄下,找到引用的ohpm包的src > main > module.json5 中查看)。

引用OpenHarmony HAR hml頁面

在JS工程范式中,組件功能由hml承載,開發者可以在JS工程的hml頁面通過標簽來引入OpenHarmony HAR中的共享hml頁面,示例如下:

< element name="comp" src="http://www.qldv.cn/images/chaijie_default.png" >< /element >

其中,@ohos/library為OpenHarmony HAR的包名,hml頁面的路徑為OpenHarmony HAR中的相對路徑。
隨后便可以通過設置的name來使用該element元素,以引用OpenHarmony HAR中的hml頁面,示例如下:

< element name="comp" src="http://www.qldv.cn/images/chaijie_default.png" >< /element >

< div class="container" >
   < comp >< /comp >
   < text class="title" >
      {{ $t('strings.hello') }} {{ title }}
   < /text >
< /div >

引用OpenHarmony HAR ArkTS頁面

ArkTS是TypeScript的擴展,因此導出和引入的語法與TypeScript一致。在OpenHarmony ohpm模塊中,可以通過export導出ArkTS頁面,示例如下:

// library/src/main/ets/components/MainPage/MainPage.ets
@Entry
@Component
export struct MainPage {
   @State message: string = 'Hello World'
   build() { 
      Row() { 
         Column() { 
            Text(this.message)
            .fontSize(50)
            .fontWeight(FontWeight.Bold)
         } 
         .width('100%') 
      } .height('100%') 
   }
}

然后在其它模塊中通過import引入導出的ArkTS頁面,示例如下所示:

// entry/MainAbility/pages/index.ets

import { MainPage } from "@ohos/library"
@Entry
@Component
struct Index {
   @State message: string = 'Hello World' 
   build() { 
      Column() { 
         MainPage() 
         Row() { 
            Text(this.message)
            .fontSize(50)
            .fontWeight(FontWeight.Bold)
         }
         .width('100%')
      } 
      .height('10%') 
   }
}

引用OpenHarmony HAR內ts/js方法ts/js方法的導出和引用,與ArkTS頁面的引用相同,即在OpenHarmony ohpm模塊中,可以通過export導出ts/js方法,示例如下所示:

// library/index.js
export function func() {
   return "[ohpm] func1";
}

然后在其它的ts/js頁面中,通過import引入導出的ts/js方法,示例如下所示:

// entry/src/main/js/MainAbility/pages/index/index.js
import {func} from "@ohos/library"
export default {
   data: {
      title: ""
   },
   onInit() {
      this.title = func();
   }
}

引用OpenHarmony HAR內資源支持在OpenHarmony ohpm模塊和依賴OpenHarmony ohpm的模塊中引用OpenHarmony ohpm模塊內的資源。例如在OpenHarmony ohpm模塊的scr/main/resources里添加字符串資源(在string.json中定義,name:hello_ohpm)和圖片資源(icon_ohpm.png)。然后在Entry模塊中引用該字符串資源和圖片資源的示例如下: 當前暫不支持類Web范式引用i18n文件中的國際化資源。

// entry/src/main/ets/MainAbility/pages/index.ets
@Entry
@Component
struct Index {
   @State message: string = 'Hello World'
   build() {
      Column() {
         Row() {
            Text($r("app.string.hello_ohpm")) // 字符串資源
              .fontSize(40)
              .fontWeight(FontWeight.Bold)
         }
         .width('50%')
         Image($r("app.media.icon_ohpm")) // 圖片資源
      }
      .height('100%')
   }
}

在編譯構建HAP中,DevEco Studio會從HAP模塊及依賴的模塊中收集資源文件,如果不同模塊的相同限定詞目錄下的資源文件出現重名沖突時,DevEco Studio會按照以下優先級進行覆蓋(優先級由高到低):

  • AppScope(僅API 9的Stage模型支持)
  • HAP包自身模塊
  • 依賴的OpenHarmonyHarmony ohpm模塊

審核編輯 黃宇

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

    關注

    57

    文章

    2392

    瀏覽量

    43050
  • OpenHarmony
    +關注

    關注

    25

    文章

    3744

    瀏覽量

    16580
收藏 人收藏

    評論

    相關推薦

    鴻蒙開發OpenHarmony組件復用案例

    ) } }, item => item) } } } 本文主要是對鴻蒙開發基礎當中的OpenHarmony技術組件復用示例, 更多鴻蒙開發
    發表于 01-15 17:37

    鴻蒙不再兼容安卓,那么鴻蒙開發者是否會大增?

    鴻蒙技術,享受藍海紅利。 鴻蒙的技術技能體系是怎么的?其實鴻蒙的板塊內容也是居多的,可以用一張鴻蒙開發
    發表于 01-31 22:17

    鴻蒙實戰項目開發:【短信服務】

    ://gitee.com/openharmony/applications_app_samples.git git pull origin master ? 最后呢,很多開發朋友不知道需要學習那些
    發表于 03-03 21:29

    鴻蒙OpenHarmony南向/北向快速開發教程-迅為RK3568開發

    4.1學習之旅了嗎?快來加入我們,一起探索鴻蒙4.1系統的無限魅力吧! 【北京迅為】OpenHarmony學習開發系列教程(第1期 北向基礎
    發表于 07-23 10:44

    鴻蒙Flutter實戰:07混合開發

    # 鴻蒙Flutter實戰:混合開發 鴻蒙Flutter混合開發主要有兩種形式。 ## 1.基于har 將flutter module
    發表于 10-23 16:00

    開發者如何快速加入鴻蒙生態?(學習方法+職業定位)

    HarmonyOS/OpenHarmony開發者們在學習、成長中對自己的準確的定位,包括個人開發者、企業開發者、各個不同職能的
    發表于 11-10 16:04

    openharmony鴻蒙有什么關系

    平板、手機、智能家居都可以通過建房子搭積木的方式來使用鴻蒙系統。 openharmony鴻蒙之間屬于相輔相成的,可以說openharmony就是建設
    的頭像 發表于 06-22 16:02 ?1.2w次閱讀

    華為openharmony鴻蒙 2.0

    華為openharmony鴻蒙 2.0 IT之家 5 月 17 日消息 微博博主 @釗哥科普 此前爆料,華為鴻蒙 OpenHarmony 2.0 從 5 月 16 日開始開源,關鍵代碼
    的頭像 發表于 06-21 20:13 ?2098次閱讀

    openharmony鴻蒙的區別是什么

    我們都知道,華為鴻蒙系統華為是開源了的,開源項目叫做OpenHarmony 2.0,那么這個開源的OpenHarmony 2.0與華為自家使用的鴻蒙HarmonyOS 2,又有什么區別
    的頭像 發表于 06-23 11:53 ?1w次閱讀

    開發鴻蒙開發者使用的日期選擇器

    該三方開源庫從github fork過來,主要將底層接口調用的實現修改成鴻蒙接口的實現,將三方庫鴻蒙化,供開發鴻蒙應用的開發者使用。 Dat
    發表于 03-28 10:44 ?1次下載

    openHarmony之藍牙快速開發框架

    Ohos Bluetooth Low Energy 藍牙快速開發框架。 openHarmonyOs,使用簡單的方式進行搜索、連接、讀寫等一系列藍牙操作,并實時地得到操作反饋。 通過DevEco
    發表于 04-13 09:35 ?8次下載

    如何在開源鴻蒙OpenHarmony開啟SELinux模式?RK3566鴻蒙開發板演示

    本文介紹開源鴻蒙OpenHarmony系統下,開啟/關閉SELinux權限的方法,觸覺智能Purple Pi OH鴻蒙開發板演示,已適配全新Open
    的頭像 發表于 11-18 19:03 ?420次閱讀
    如何在開源<b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>開啟SELinux模式?RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>板演示

    OpenHarmony屬性信息怎么修改?觸覺智能RK3566鴻蒙開發板來演示

    本文介紹開源鴻蒙OpenHarmony系統下,修改產品屬性信息的方法,觸覺智能Purple Pi OH鴻蒙開發板演示,已適配全新OpenHarmon
    的頭像 發表于 11-27 09:31 ?232次閱讀
    <b class='flag-5'>OpenHarmony</b>屬性信息怎么修改?觸覺智能RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>板來演示

    OpenHarmony怎么修改DPI密度值?觸覺智能RK3566鴻蒙開發板演示

    開源鴻蒙OpenHarmony系統下,修改DPI密度值的方法,觸覺智能Purple Pi OH鴻蒙開發板演示,搭載了瑞芯微RK3566四核處理器,Laval
    的頭像 發表于 12-24 11:46 ?259次閱讀
    <b class='flag-5'>OpenHarmony</b>怎么修改DPI密度值?觸覺智能RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>板演示

    OpenHarmony源碼編譯后燒錄鏡像教程,RK3566鴻蒙開發板演示

    本文介紹瑞芯微主板/開發板編譯OpenHarmony源碼后燒錄鏡像的教程,觸覺智能Purple Pi OH鴻蒙開發板演示。搭載了瑞芯微RK3566四核處理器,樹莓派卡片電腦設計,支持開
    的頭像 發表于 12-30 10:08 ?180次閱讀
    <b class='flag-5'>OpenHarmony</b>源碼編譯后燒錄鏡像教程,RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>板演示
    百家乐博彩技巧视频| 大发888娱乐城官方网站| 贝博百家乐的玩法技巧和规则| 免费百家乐官网缩水软件| 太阳城百家乐官网看牌| 滦南县| 芷江| 888达人| 澳门赌球网| 德州扑克专业版| 大发888娱乐场 ylc8| 大发888在线服务| 百家乐游戏筹码| 怎样打百家乐的玩法技巧和规则| 太阳城百家乐优惠| 百家乐大小是什么| 百家乐赌法博彩正网| 百家乐娱乐城玩法| 百家乐玩法与规则| 博彩网百家乐官网全讯网| 路冲铺面能做生意吗| 威尼斯人娱乐城存款多少起存| 星期八娱乐城| 百家乐官网纯技巧打| 线上百家乐技巧| 百家乐小路规则| 线上百家乐怎么玩| 大发888 王博| 千亿娱乐网| 聚宝盆百家乐官网游戏| 赌场百家乐官网技巧| 澳门百家乐官网赢钱公式不倒翁| 百家乐官网机械投注法| 百家乐官网下| 饿火命适合做生意吗| 百家乐论坛香港马会| 威尼斯人娱乐注册网址| 大发888官方df888gfxzylc8| 博彩游戏| 百家乐官网模拟分析程序| 百家乐官网的战术|