日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

基于原生的跨模塊資源訪問

來源: 責編: 時間:2024-05-09 17:56:56 198觀看
導讀想了解更多關于開源的內容,請訪問:51CTO 鴻蒙開發者社區https://ost.51cto.com場景一、訪問模塊內資源通過"$r"或"$rawfile"引用資源對于“color”、“float”、“string”、“plural”、“media”、“profile”等類型

esN28資訊網——每日最新資訊28at.com

想了解更多關于開源的內容,請訪問:esN28資訊網——每日最新資訊28at.com

51CTO 鴻蒙開發者社區esN28資訊網——每日最新資訊28at.com

https://ost.51cto.comesN28資訊網——每日最新資訊28at.com

場景一、訪問模塊內資源

通過"$r"或"$rawfile"引用資源

對于“color”、“float”、“string”、“plural”、“media”、“profile”等類型的資源,通過"$r('app.type.name')"形式引用。其中,app為resources目錄中定義的資源;type為資源類型或資源的存放位置;name為資源名,開發者定義資源時確定。esN28資訊網——每日最新資訊28at.com

esN28資訊網——每日最新資訊28at.com

對于rawfile目錄資源,通過"$rawfile('filename')"形式引用。esN28資訊網——每日最新資訊28at.com

使用$r進行string資源引用。esN28資訊網——每日最新資訊28at.com

Text($r("app.string.mystring"))

在rawfile下的資源可以通過$rawfile+文件名訪問。esN28資訊網——每日最新資訊28at.com

Image($rawfile("img.jpg"))

場景二、跨HAP/HSP包應用資源

bundle相同,跨module訪問

方式一:通過createModuleContext(moduleName)接口創建同應用中不同module的上下文,獲取resourceManager對象后,調用不同接口訪問不同資源。esN28資訊網——每日最新資訊28at.com

getContext(this).createModuleContext(moduleName).resourceManager.getStringByNameSync('app.string.XXX')

方式二:通過"$r"或"$rawfile"引用資源(api12支持的能力)。 1.[hsp].type.name獲取資源。其中,hsp為hsp模塊名,type為資源類型,name為資源名稱。esN28資訊網——每日最新資訊28at.com

Text($r('[hsp].string.test_string'))   .fontSize($r('[hsp].float.font_size'))   .fontColor($r('[hsp].color.font_color')) Image($rawfile('[hsp].oneFile/twoFile/icon.png'))

使用變量獲取資源。esN28資訊網——每日最新資訊28at.com

@Entry @Component struct Index {   text: string = '[hsp].string.test_string';   fontSize: string = '[hsp].float.font_size';   fontColor: string = '[hsp].color.font_color';   image: string = '[hsp].media.string';   rawfile: string = '[hsp].icon.png';      build() {     Row() {       Text($r(this.text))         .fontSize($r(this.fontSize))         .fontColor($r(this.fontColor))              Image($r(this.image))              Image($rawfile(this.rawfile))     }   } }

說明:hsp包名必須寫在[]內,”rawfile“下有多層目錄,需要從”rawfile“下面第一個目錄開始寫,如“$rawfile('[hsp].oneFile/twoFile/icon.png')”,使用"$r"和"$rawfile"跨包訪問HSP包資源無法提供編譯時的資源校驗,需要開發者自行保證使用資源存在于對應包中。esN28資訊網——每日最新資訊28at.com

場景三、HSP包的資源導出引用

創建HSP,新建模塊,選擇shared library。esN28資訊網——每日最新資訊28at.com

esN28資訊網——每日最新資訊28at.com

esN28資訊網——每日最新資訊28at.com

導出需要使用的資源。esN28資訊網——每日最新資訊28at.com

導出ResManager1,以便其他模塊獲取到hsp中的resource資源。esN28資訊網——每日最新資訊28at.com

export class ResManager1{   static getPic(): Resource{     return $r('app.media.11');   }   static getDesc(): Resource{     return $r('app.string.shared_desc1');   } }

在模塊下的index.ets導出資源。esN28資訊網——每日最新資訊28at.com

esN28資訊網——每日最新資訊28at.com

引用資源。esN28資訊網——每日最新資訊28at.com

在引用方模塊的oh-package.json5下添加依賴,執行install。esN28資訊網——每日最新資訊28at.com

esN28資訊網——每日最新資訊28at.com

Import加載并使用。esN28資訊網——每日最新資訊28at.com

import {ResManager1}from 'hsp' @Entry @Component struct Index {   @State message: string = 'Hello World';      build() {     Row() {       Column() {         Text(ResManager1.getDesc())           .fontSize(50)           .fontWeight(FontWeight.Bold)       }       .width('100%')     }     .height('100%')   } }

場景四、HAR包的資源導出引用

新建模塊,選擇static library。esN28資訊網——每日最新資訊28at.com

esN28資訊網——每日最新資訊28at.com

export使用的資源,并在模塊下的index.ets導出。esN28資訊網——每日最新資訊28at.com

esN28資訊網——每日最新資訊28at.com

build出har包。esN28資訊網——每日最新資訊28at.com

esN28資訊網——每日最新資訊28at.com

Build完成后會在模塊下生成.har文件。esN28資訊網——每日最新資訊28at.com

引用har包,在引用方oh-package.json5下添加依賴,依賴需要到.har文件,執行install。esN28資訊網——每日最新資訊28at.com

esN28資訊網——每日最新資訊28at.com

import 后調用har中的資源。esN28資訊網——每日最新資訊28at.com

import {ResManager}from 'har' @Entry @Component struct Index {   @State message: string = 'Hello World';      build() {     Row() {       Column() {         Image(ResManager.getPic()).width(50)           .fontSize(50)           .fontWeight(FontWeight.Bold)       }       .width('100%')     }     .height('100%')   } }

其他常見問題:esN28資訊網——每日最新資訊28at.com

Q:依賴的多個模塊使用過相同資源后,以哪一個模塊的資源為準? esN28資訊網——每日最新資訊28at.com

A:如果依賴的多個HAR之間有資源沖突,會按照依賴順序進行覆蓋(依賴順序在前的優先級較高)。esN28資訊網——每日最新資訊28at.com

Q:是否可以通過循環變量加載資源? esN28資訊網——每日最新資訊28at.com

A:當前支持通過$r("app.string.name" + 1)拼接的方式加載資源(包括變量拼接的形式),跨模塊的場景也適用。esN28資訊網——每日最新資訊28at.com

想了解更多關于開源的內容,請訪問:esN28資訊網——每日最新資訊28at.com

51CTO 鴻蒙開發者社區esN28資訊網——每日最新資訊28at.com

https://ost.51cto.comesN28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-87681-0.html基于原生的跨模塊資源訪問

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 一篇聊透云原生中的服務網格

下一篇: Next.js 14:全棧開發的新寵?

標簽:
  • 熱門焦點
  • K8S | Service服務發現

    一、背景在微服務架構中,這里以開發環境「Dev」為基礎來描述,在K8S集群中通常會開放:路由網關、注冊中心、配置中心等相關服務,可以被集群外部訪問;圖片對于測試「Tes」環境或者
  • 19個 JavaScript 單行代碼技巧,讓你看起來像個專業人士

    今天這篇文章跟大家分享18個JS單行代碼,你只需花幾分鐘時間,即可幫助您了解一些您可能不知道的 JS 知識,如果您已經知道了,就當作復習一下,古人云,溫故而知新嘛。現在,我們就開始今
  • 每天一道面試題-CPU偽共享

    前言:了不起:又到了每天一到面試題的時候了!學弟,最近學習的怎么樣啊 了不起學弟:最近學習的還不錯,每天都在學習,每天都在進步! 了不起:那你最近學習的什么呢? 了不起學弟:最近在學習C
  • 破圈是B站頭上的緊箍咒

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之每年的暑期檔都少不了瞄準追劇女孩們的古偶劇集,2021年有優酷的《山河令》,2022年有愛奇藝的《蒼蘭訣》,今年卻輪到小破站抓住了追
  • 共享單車的故事講到哪了?

    來源丨海克財經與共享充電寶相差不多,共享單車已很久沒有被國內熱點新聞關照到了。除了一再漲價和用戶直呼用不起了。近日多家媒體再發報道稱,成都、天津、鄭州等地多個共享單
  • 騰訊VS網易,最卷游戲暑期檔,誰能笑到最后?

    作者:無銹缽來源:財經無忌7月16日晚,上海1862時尚藝術中心。伴隨著幻象的精準命中,碩大的熒幕之上,比分被定格在了14:12,被寄予厚望的EDG戰隊以絕對的優勢戰勝了BLG戰隊,拿下了總決
  • 消費結構調整丨巨頭低價博弈,拼多多還卷得動嗎?

    來源:征探財經作者:陳香羽隨著流量紅利的退潮,電商的存量博弈越來越明顯。曾經主攻中高端與品質的淘寶天貓、京東重拾“低價”口號。而過去與他們錯位競爭的拼多多,靠
  • 7月4日見!iQOO 11S官宣:“雞血版”驍龍8 Gen2+200W快充加持

    上半年已接近尾聲,截至目前各大品牌旗下的頂級旗艦都已悉數亮相,而下半年即將推出的頂級旗艦已經成為了數碼圈爆料的主流,其中就包括全新的iQOO 11S系
  • 微軟發布Windows 11新版 引入全新任務欄狀態

    近日,微軟發布了Windows 11新版,而Build 22563更新主要引入了幾周前曝光的平板模式任務欄等,系統更流暢了。更新中,Windows 11加入了專門針對平板優化的任務欄
Top 主站蜘蛛池模板: 广宗县| 咸阳市| 丹凤县| 永靖县| 潞西市| 宁德市| 红河县| 那曲县| 广饶县| 阳春市| 扶沟县| 原平市| 来安县| 株洲市| 蒙自县| 香河县| 开化县| 桓台县| 建阳市| 罗源县| 苍南县| 鸡东县| 平定县| 化德县| 成安县| 西安市| 庆云县| 桂阳县| 霍州市| 广东省| 广灵县| 万源市| 东平县| 海兴县| 竹溪县| 铜鼓县| 莫力| 电白县| 邢台县| 孙吴县| 乃东县|