前面已經(jīng)創(chuàng)建了一個HelloWorld項目,同時創(chuàng)建了包含工具纵装、業(yè)務(wù)、啟動等功能的多個業(yè)務(wù)模塊模板据某,今天開始串聯(lián)Har模塊和Hap模塊橡娄,此外,為項目添加一個歡迎頁癣籽。
Har模塊和Hap模塊關(guān)聯(lián)
我們創(chuàng)建的各個Har模塊根目錄下都有一個Index.ets文件挽唉,該文件是HAR導出聲明文件的入口滤祖,HAR需要導出的接口,統(tǒng)一在Index.ets文件中導出瓶籽。Index.ets文件是DevEco Studio默認自動生成的匠童,用戶也可以自定義,在模塊的oh-package.json5文件中的main字段配置入口聲明文件塑顺,配置如下所示:
{
"main": "Index.ets"
}
如下圖所示汤求,可以看到通過export導出了名為MainPage的 ArkUI組件。當前HAR對外暴露的接口严拒,在Index.ets導出該MainPage.ets文件:
接下來扬绪,在entry模塊中引用Har資源,在該模塊根目錄找到oh-package.json5裤唠,在dependancie引入依賴module,
"dependencies": {
"base": "file:../../common/base",
"feature_home": "file:../../features/feature_home"
}
[圖片上傳失敗...(image-d20561-1731978640553)]
接下來在entry模塊的具體ets文件中引入module的接口或view組件挤牛,以創(chuàng)建歡迎頁為例。
Module中添加資源并導出
在base模塊中創(chuàng)建并導出了Constants.ets文件种蘸,同時創(chuàng)建了多個Utils文件墓赴,如下圖
[圖片上傳失敗...(image-986673-1731978640553)]
在entry模塊創(chuàng)建歡迎頁并引用module的資源
創(chuàng)建splash.ets文件并設(shè)置歡迎頁、讀秒跳轉(zhuǎn)航瞭,可通過用戶首選項設(shè)置歡迎頁的展示邏輯诫硕,具體代碼如下圖所示:
可以看到, Constants 接口和 PreferencesUtil 工具類都是base模塊中創(chuàng)建沧奴,在entry模塊經(jīng)過import后可直接調(diào)用:
import { Constants, PreferencesUtil } from 'base';
同樣的痘括,可通過$r引用HAR中的資源,例如在HAR模塊的src/main/resources里添加字符串資源(在string.json中定義滔吠,name:hello_har)和圖片資源(icon_har.png)纲菌,然后在Entry模塊中引用該字符串和圖片資源。
歡迎頁的樣式和邏輯已完成疮绷,接下來需要修改EntryAbility的頁面加載路徑翰舌,即在onWindowStageCreate()將
windowStage.loadContent()的路徑改為 ‘pages/Splash’ :
export default class EntryAbility extends UIAbility {
......
onWindowStageCreate(windowStage: window.WindowStage): void {
// Main window is created, set main page for this ability
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');
windowStage.loadContent('pages/Splash', (err) => {
if (err.code) {
hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
return;
}
hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.');
});
}
......
}
最終的效果:
[圖片上傳失敗...(image-70ba9c-1731978640553)]
至此,module之間相互依賴和歡迎頁創(chuàng)建都完成了冬骚,大家運行自己的代碼即可看到效果椅贱,遺留問題(比如歡迎頁沒有全屏,頂部底部有白塊只冻、項目名稱庇麦、start_icon修改等)相信大家也注意到了,我們下一期進行優(yōu)化喜德。
小知識點:
-
本文創(chuàng)建的多個HAR模塊可以作為二方庫和三方庫提供給其他應(yīng)用使用山橄,如果需要對代碼資產(chǎn)進行保護時,建議開啟混淆能力舍悯。
混淆能力開啟后航棱,DevEco Studio在構(gòu)建HAR時睡雇,會對代碼進行編譯、混淆及壓縮處理饮醇,保護代碼資產(chǎn)它抱。
僅Stage模型的ArkTS工程支持混淆。
可以在HAR模塊的build-profile.json5文件中的ruleOptions字段下的enable進行設(shè)置朴艰,配置如下所示:
[圖片上傳失敗...(image-6ebf0d-1731978640553)]