W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
JS UI 框架支持純 JavaScript、JavaScript 和 Java 混合語(yǔ)言開(kāi)發(fā)。JS FA 指基于 JavaScript 或 JavaScript 和 Java混合開(kāi)發(fā)的 FA,下面主要介紹:JS FA 在 HarmonyOS 上運(yùn)行時(shí)需要的基類(lèi) AceAbility、加載 JS FA 主體的方法、JS FA 開(kāi)發(fā)目錄。
AceAbility 類(lèi)是 JS FA 在 HarmonyOS 上運(yùn)行環(huán)境的基類(lèi),繼承自 Ability。開(kāi)發(fā)者的應(yīng)用運(yùn)行入口類(lèi)應(yīng)該從該類(lèi)派生,代碼示例如下:
public class MainAbility extends AceAbility {
@Override
public void onStart(Intent intent) {
super.onStart(intent);
}
@Override
public void onStop() {
super.onStop();
}
}
JS FA 生命周期事件分為應(yīng)用生命周期和頁(yè)面生命周期,應(yīng)用通過(guò) AceAbility 類(lèi)中setInstanceName() 接口設(shè)置該 Ability 的實(shí)例資源,并通過(guò) AceAbility 窗口進(jìn)行顯示以及全局應(yīng)用生命周期管理。
setInstanceName(String name)的參數(shù)“name”指實(shí)例名稱(chēng),實(shí)例名稱(chēng)與config.json 文件中 profile.application.js.name 的值對(duì)應(yīng)。若開(kāi)發(fā)者未修改實(shí)例名,而使用了缺省值 default,則無(wú)需調(diào)用此接口。若開(kāi)發(fā)者修改了實(shí)例名,則需在應(yīng)用 Ability 實(shí)例的 onStart()中調(diào)用此接口,并將參數(shù)“name”設(shè)置為修改后的實(shí)例名稱(chēng)。
說(shuō)明
多實(shí)例應(yīng)用的 profile.application.js 字段中有多個(gè)實(shí)例項(xiàng),使用時(shí)請(qǐng)選擇相應(yīng)的實(shí)例名稱(chēng)。
setInstanceName() 接口使用方法:在 MainAbility 的 onStart() 中的 super.onStart() 前調(diào)用此接口。以 JSComponentName 作為實(shí)例名稱(chēng),代碼示例如下:
public class MainAbility extends AceAbility {
@Override
public void onStart(Intent intent) {
setInstanceName("JSComponentName"); // config.json配置文件中ability.js.name的標(biāo)簽值。
super.onStart(intent);
}
}
說(shuō)明
需在 super.onStart(Intent) 前調(diào)用此接口。
新建工程的 JS 目錄如下圖所示。
在工程目錄中:common 文件夾主要存放公共資源,如圖片、視頻等;i18n 下存放多語(yǔ)言的 json 文件;pages 文件夾下存放多個(gè)頁(yè)面,每個(gè)頁(yè)面由 hml、css 和 js 文件組成。
此文件定義了在英文模式下頁(yè)面顯示的變量?jī)?nèi)容。同理,zh-CN.json 中定義了中文模式下的頁(yè)面內(nèi)容。
{
"strings": {
"hello": "Hello",
"world": "World"
},
"files": {
}
}
此文件定義了 index 頁(yè)面的布局、index 頁(yè)面中用到的組件,以及這些組件的層級(jí)關(guān)系。例如:index.hml 文件中包含了一個(gè) text 組件,內(nèi)容為 “Hello World” 文本。
<div class ="container">
<text class ="title">
{{ $t('strings.hello') }} {{title}}
</text>
</div>
此文件定義了 index 頁(yè)面的樣式。例如:index.css 文件定義了“container”和 “title” 的樣式。
.container {
flex-direction: column;
justify-content: center;
align-items: center;
}
.title {
font-size: 100px;
}
此文件定義了 index 頁(yè)面的業(yè)務(wù)邏輯,比如數(shù)據(jù)綁定、事件處理等。例如:變量 “title”賦值為字符串 “World” 。
export default {
data: {
title: '',
},
onInit() {
this.title = this.$t('strings.world');
},
}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: