提交 6e0844f5 编写于 作者: zyjhandsome's avatar zyjhandsome

应用模型 > 启动UIAbility的指定页面,首次和非首次启动UIAbility,Topic名称优化,优化为UIAbility冷启动和UIAbility热启动

Signed-off-by: zyjhandsome's avatarzyjhandsome <zyjhandsome@126.com>
上级 9c8c77fc
...@@ -388,7 +388,7 @@ context.startAbility(want, options).then(() => { ...@@ -388,7 +388,7 @@ context.startAbility(want, options).then(() => {
## 启动UIAbility的指定页面 ## 启动UIAbility的指定页面
一个UIAbility可以对应多个页面,在不同的场景下启动该UIAbility时需要展示不同的页面,例如从一个UIAbility的页面中跳转到另外一个UIAbility时,希望启动目标UIAbility的指定页面。本文主要讲解目标UIAbility首次启动和目标UIAbility非首次启动两种启动指定页面的场景,以及在讲解启动指定页面之前会讲解到在调用方如何指定启动页面。 一个UIAbility可以对应多个页面,在不同的场景下启动该UIAbility时需要展示不同的页面,例如从一个UIAbility的页面中跳转到另外一个UIAbility时,希望启动目标UIAbility的指定页面。本文主要讲解[目标UIAbility冷启动](#目标UIAbility冷启动)[目标UIAbility热启动](#目标UIAbility热启动)两种启动指定页面的场景,以及在讲解启动指定页面之前会讲解到在调用方如何指定启动页面。
### 调用方UIAbility指定启动页面 ### 调用方UIAbility指定启动页面
...@@ -416,9 +416,9 @@ context.startAbility(want).then(() => { ...@@ -416,9 +416,9 @@ context.startAbility(want).then(() => {
``` ```
### 目标UIAbility首次启动 ### 目标UIAbility启动
目标UIAbility首次启动时,在目标UIAbility的`onWindowStageCreate()`生命周期回调中,解析EntryAbility传递过来的want参数,获取到需要加载的页面信息url,传入`windowStage.loadContent()`方法。 目标UIAbility启动时,在目标UIAbility的`onWindowStageCreate()`生命周期回调中,解析EntryAbility传递过来的want参数,获取到需要加载的页面信息url,传入`windowStage.loadContent()`方法。
```ts ```ts
...@@ -448,7 +448,7 @@ export default class FuncAbility extends UIAbility { ...@@ -448,7 +448,7 @@ export default class FuncAbility extends UIAbility {
} }
``` ```
### 目标UIAbility非首次启动 ### 目标UIAbility启动
在应用开发中,会遇到目标UIAbility实例之前已经启动过的场景,这时再次启动目标UIAbility时,不会重新走初始化逻辑,只会直接触发`onNewWant()`生命周期方法。为了实现跳转到指定页面,需要在`onNewWant()`中解析要参数进行处理。 在应用开发中,会遇到目标UIAbility实例之前已经启动过的场景,这时再次启动目标UIAbility时,不会重新走初始化逻辑,只会直接触发`onNewWant()`生命周期方法。为了实现跳转到指定页面,需要在`onNewWant()`中解析要参数进行处理。
...@@ -479,7 +479,7 @@ S-->>U: 显示给张三发短信的页面 ...@@ -479,7 +479,7 @@ S-->>U: 显示给张三发短信的页面
开发步骤如下所示。 开发步骤如下所示。
1. 首次启动短信应用的UIAbility实例时,在`onWindowStageCreate()`生命周期回调中,通过调用[`getUIContext()`](../reference/apis/js-apis-window.md#getuicontext10)接口获取UI上下文实例[`UIContext`](../reference/apis/js-apis-arkui-UIContext.md)对象。 1. 启动短信应用的UIAbility实例时,在`onWindowStageCreate()`生命周期回调中,通过调用[`getUIContext()`](../reference/apis/js-apis-window.md#getuicontext10)接口获取UI上下文实例[`UIContext`](../reference/apis/js-apis-arkui-UIContext.md)对象。
```ts ```ts
import AbilityConstant from '@ohos.app.ability.AbilityConstant'; import AbilityConstant from '@ohos.app.ability.AbilityConstant';
...@@ -519,7 +519,7 @@ S-->>U: 显示给张三发短信的页面 ...@@ -519,7 +519,7 @@ S-->>U: 显示给张三发短信的页面
funcAbilityWant: Want; funcAbilityWant: Want;
uiContext: UIContext; uiContext: UIContext;
onNewWant(want: Want, launchParams: AbilityConstant.LaunchParam) { onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam) {
if (want?.parameters?.router && want.parameters.router === 'funcA') { if (want?.parameters?.router && want.parameters.router === 'funcA') {
let funcAUrl = 'pages/Second'; let funcAUrl = 'pages/Second';
let router: Router = this.uiContext.getRouter(); let router: Router = this.uiContext.getRouter();
...@@ -738,4 +738,4 @@ Call功能主要接口如下表所示。具体的API详见[接口文档](../refe ...@@ -738,4 +738,4 @@ Call功能主要接口如下表所示。具体的API详见[接口文档](../refe
针对UIAbility组件间交互开发,有以下相关实例可供参考: 针对UIAbility组件间交互开发,有以下相关实例可供参考:
- [UIAbility内和UIAbility间页面的跳转(ArkTS)(API9)](https://gitee.com/openharmony/codelabs/tree/master/Ability/StageAbility) - [UIAbility内和UIAbility间页面的跳转(ArkTS)(API9)](https://gitee.com/openharmony/codelabs/tree/master/Ability/StageAbility)
- [UIAbility内页面间的跳转(ArkTS)(API9)](https://gitee.com/openharmony/codelabs/tree/master/Ability/PagesRouter) - [UIAbility内页面间的跳转(ArkTS)(API9)](https://gitee.com/openharmony/codelabs/tree/master/Ability/PagesRouter)
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册