新聞中心
Page與AbilitySlice

Page 模板(以下簡(jiǎn)稱“Page”)是 FA 唯一支持的模板,用于提供與用戶交互的能力。一個(gè) Page 可以由一個(gè)或多個(gè) AbilitySlice 構(gòu)成,AbilitySlice 是指應(yīng)用的單個(gè)頁(yè)面及其控制邏輯的總和。
當(dāng)一個(gè) Page 由多個(gè) AbilitySlice 共同構(gòu)成時(shí),這些 AbilitySlice 頁(yè)面提供的業(yè)務(wù)能力應(yīng)具有高度相關(guān)性。例如,新聞瀏覽功能可以通過(guò)一個(gè) Page 來(lái)實(shí)現(xiàn),其中包含了兩個(gè) AbilitySlice:一個(gè) AbilitySlice 用于展示新聞列表,另一個(gè) AbilitySlice 用于展示新聞詳情。Page 和 AbilitySlice 的關(guān)系如[圖1]所示。
圖1 Page 與 AbilitySlice
相比于桌面場(chǎng)景,移動(dòng)場(chǎng)景下應(yīng)用之間的交互更為頻繁。通常,單個(gè)應(yīng)用專注于某個(gè)方面的能力開發(fā),當(dāng)它需要其他能力輔助時(shí),會(huì)調(diào)用其他應(yīng)用提供的能力。例如,外賣應(yīng)用提供了聯(lián)系商家的業(yè)務(wù)功能入口,當(dāng)用戶在使用該功能時(shí),會(huì)跳轉(zhuǎn)到通話應(yīng)用的撥號(hào)頁(yè)面。與此類似,HarmonyOS 支持不同 Page 之間的跳轉(zhuǎn),并可以指定跳轉(zhuǎn)到目標(biāo) Page 中某個(gè)具體的 AbilitySlice。
AbilitySlice 路由配置
雖然一個(gè) Page 可以包含多個(gè) AbilitySlice,但是 Page 進(jìn)入前臺(tái)時(shí)界面默認(rèn)只展示一個(gè) AbilitySlice。默認(rèn)展示的 AbilitySlice 是通過(guò)setMainRoute()方法來(lái)指定的。如果需要更改默認(rèn)展示的 AbilitySlice,可以通過(guò)addActionRoute()方法為此 AbilitySlice 配置一條路由規(guī)則。此時(shí),當(dāng)其他 Page 實(shí)例期望導(dǎo)航到此 AbilitySlice 時(shí),可以在 Intent 中指定Action,詳見 不同 Page 間導(dǎo)航。
setMainRoute() 方法與 addActionRoute() 方法的使用示例如下:
public class MyAbility extends Ability {
@Override
public void onStart(Intent intent) {
super.onStart(intent);
// set the main route
setMainRoute(MainSlice.class.getName());
// set the action route
addActionRoute("action.pay", PaySlice.class.getName());
addActionRoute("action.scan", ScanSlice.class.getName());
}
}
addActionRoute() 方法中使用的動(dòng)作命名,需要在應(yīng)用配置文件(config.json)中注冊(cè):
{
"module": {
"abilities": [
{
"skills":[
{
"actions":[
"action.pay",
"action.scan"
]
}
]
...
}
]
...
}
...
} 網(wǎng)頁(yè)題目:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS基本概念
網(wǎng)站網(wǎng)址:http://m.fisionsoft.com.cn/article/cojiisp.html


咨詢
建站咨詢
