Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
c74bb82d
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
c74bb82d
编写于
5月 12, 2022
作者:
O
openharmony_ci
提交者:
Gitee
5月 12, 2022
浏览文件
操作
浏览文件
下载
差异文件
!3918 Add guideline for onNewWant
Merge pull request !3918 from 张亚菲/zyf
上级
1d10d660
781b58cd
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
50 addition
and
0 deletion
+50
-0
zh-cn/application-dev/ability/stage-ability.md
zh-cn/application-dev/ability/stage-ability.md
+50
-0
未找到文件。
zh-cn/application-dev/ability/stage-ability.md
浏览文件 @
c74bb82d
...
...
@@ -271,6 +271,56 @@ export default class MainAbility extends Ability { {
}
```
### 通过onNewWant实现指定页面启动Ability
当Ability的启动模式设置为单例时,若Ability已被拉起,再次启动Ability会触发onNewWant回调。应用开发者可以通过want传递启动参数,比如希望指定页面启动Ability,可以通过want中的uri参数或parameters参数传递pages信息。目前,Stage模型中Ability暂时无法直接使用router的能力,可以将启动参数传递给自定义组件,在自定义组件的生命周期中调用router接口显示指定页面。具体示例代码如下:
使用startAbility再次拉起Ability,通过want中的uri参数传递页面信息:
```
ts
async
function
reStartAbility
()
{
try
{
await
this
.
context
.
startAbility
({
bundleName
:
"
com.sample.MyApplication
"
,
abilityName
:
"
MainAbility
"
,
uri
:
"
pages/second
"
})
console
.
log
(
'
start ability succeed
'
)
}
catch
(
error
)
{
console
.
error
(
`start ability failed with
${
error
.
code
}
`
)
}
}
```
在Ability的onNewWant回调中获取包含页面信息的want参数:
```
ts
import
Ability
from
'
@ohos.application.Ability
'
export
default
class
MainAbility
extends
Ability
{
onNewWant
(
want
)
{
globalThis
.
newWant
=
want
}
}
```
在自定义组件中获取包含页面信息的want参数并根据uri做路由处理:
```
ts
import
router
from
'
@system.router
'
@
Entry
@
Component
struct
Index
{
newWant
=
undefined
onPageShow
()
{
console
.
info
(
'
Index onPageShow
'
)
let
newWant
=
globalThis
.
newWant
if
(
newWant
.
hasOwnProperty
(
"
uri
"
))
{
router
.
push
({
uri
:
newWant
.
uri
});
globalThis
.
newWant
=
undefined
}
}
}
```
## 相关实例
针对Stage模型Ability开发,有以下相关示例可供参考:
-
[
`StageCallAbility`:StageAbility的创建与使用(eTS)(API9)
](
https://gitee.com/openharmony/app_samples/tree/master/ability/StageCallAbility
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录