Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
f5db12bf
D
Docs
项目概览
OpenHarmony
/
Docs
接近 2 年 前同步成功
通知
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看板
提交
f5db12bf
编写于
2月 26, 2023
作者:
zyjhandsome
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
重构《使用隐式Want打开网址》章节内容
Signed-off-by:
zyjhandsome
<
zyjhandsome@126.com
>
上级
860bedd4
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
66 addition
and
63 deletion
+66
-63
zh-cn/application-dev/application-models/ability-startup-with-explicit-want.md
.../application-models/ability-startup-with-explicit-want.md
+2
-1
zh-cn/application-dev/application-models/ability-startup-with-implicit-want.md
.../application-models/ability-startup-with-implicit-want.md
+64
-62
zh-cn/application-dev/application-models/figures/ability-startup-with-implicit-want1.png
...on-models/figures/ability-startup-with-implicit-want1.png
+0
-0
zh-cn/application-dev/application-models/figures/stage-want1.png
...pplication-dev/application-models/figures/stage-want1.png
+0
-0
未找到文件。
zh-cn/application-dev/application-models/ability-startup-with-explicit-want.md
浏览文件 @
f5db12bf
# 使用显式Want启动Ability
在应用使用场景中,当用户在应用内点击某个按钮时,经常需要拉起指定UIAbility组件来完成某些特定任务。在启动UIAbility时,指定了abilityName和bundleName参数,可以使用显式Want方式启动UIAbility。显式Want的使用
在应用使用场景中,当用户在应用内点击某个按钮时,经常需要拉起指定UIAbility组件来完成某些特定任务。在启动UIAbility时,指定了abilityName和bundleName参数,可以使用显示Want方式启动UIAbility。显示Want的使用
请参见
[
启动应用内的UIAbility
](
uiability-intra-device-interaction.md#启动应用内的uiability
)
。
针对应用的特定任务,用户需要通过点击应用内的按钮来启动指定的UIAbility组件。在启动UIAbility时,需要提供abilityName和bundleName参数,并使用显式Want方式来启动。关于如何使用显式Want方式启动应用内的UIAbility,
请参见
[
启动应用内的UIAbility
](
uiability-intra-device-interaction.md#启动应用内的uiability
)
。
zh-cn/application-dev/application-models/ability-startup-with-implicit-want.md
浏览文件 @
f5db12bf
# 使用隐式Want打开网址
## 前提条件
设备上安装了一个或多个浏览器。
浏览器应用中通过module.json5配置如下:
以打开浏览器为例,假设设备上安装了一个或多个浏览器应用。为了使浏览器应用能够正常工作,需要在
[
module.json5配置文件
](
../quick-start/module-configuration-file.md
)
进行配置,具体配置如下:
```
json
"skills"
:
[
{
"entities"
:
[
"entity.system.browsable"
//
...
],
"actions"
:
[
"ohos.want.action.viewData"
//
...
],
"uris"
:
[
{
"scheme"
:
"https"
,
"host"
:
"www.test.com"
,
"port"
:
"8080"
,
//
prefix
matching
"pathStartWith"
:
"query"
,
"type"
:
"text/*"
},
{
"module"
:
{
//
...
"abilities"
:
[
{
"scheme"
:
"http"
,
//
...
"skills"
:
[
{
"entities"
:
[
"entity.system.home"
,
"entity.system.browsable"
//
...
],
"actions"
:
[
"action.system.home"
,
"ohos.want.action.viewData"
//
...
],
"uris"
:
[
{
"scheme"
:
"https"
,
"host"
:
"www.test.com"
,
"port"
:
"8080"
,
//
prefix
matching
"pathStartWith"
:
"query"
,
"type"
:
"text/*"
},
{
"scheme"
:
"http"
,
//
...
}
//
...
]
}
]
}
//
...
]
}
,
]
}
}
```
在调用方UIAbility中,使用隐式Want方式启动浏览器应用。
## 开发步骤
```
ts
import
common
from
'
@ohos.app.ability.common
'
;
1.
在自定义函数implicitStartAbility内使用
**隐式Want**
启动Ability。
```
ts
async
implicitStartAbility
()
{
try
{
let
want
=
{
// uncomment line below if wish to implicitly query only in the specific bundle.
// bundleName: "com.example.myapplication",
"
action
"
:
"
ohos.want.action.viewData
"
,
// entities can be omitted.
"
entities
"
:
[
"
entity.system.browsable
"
],
"
uri
"
:
"
https://www.test.com:8080/query/student
"
,
"
type
"
:
"
text/plain
"
}
let
context
=
getContext
(
this
)
as
common
.
UIAbilityContext
;
await
context
.
startAbility
(
want
)
console
.
info
(
`explicit start ability succeed`
)
}
catch
(
error
)
{
console
.
info
(
`explicit start ability failed with
${
error
.
code
}
`
)
}
}
```
匹配过程如下:
1.
want内action不为空,且被skills内action包括,匹配成功。
2.
want内entities不为空,且被skills内entities包括,匹配成功。
3.
skills内uris拼接为
`https://www.test.com:8080/query*`
(
\*
为通配符)包含want内uri,匹配成功。
function
implicitStartAbility
()
{
let
context
=
getContext
(
this
)
as
common
.
UIAbilityContext
;
let
wantInfo
=
{
// uncomment line below if wish to implicitly query only in the specific bundle.
// bundleName: "com.example.myapplication",
"
action
"
:
"
ohos.want.action.viewData
"
,
// entities can be omitted.
"
entities
"
:
[
"
entity.system.browsable
"
],
"
uri
"
:
"
https://www.test.com:8080/query/student
"
,
"
type
"
:
"
text/plain
"
}
context
.
startAbility
(
wantInfo
).
then
(()
=>
{
// ...
}).
catch
((
err
)
=>
{
// ...
})
}
```
4.
want内type不为空,且被skills内type包含,匹配成功。
匹配过程分析:
2.
当有多个匹配应用时,会被应用选择器展示给用户进行选择。
1.
调用方传入的want参数的action不为空,待匹配Ability的skills配置中的actions不为空且包含调用方传入的want参数的action,action匹配成功。
2.
调用方传入的want参数的entities不为空,待匹配Ability的skills配置中的entities不为空且包含调用方传入的want参数的entities,entities匹配成功。
3.
待匹配Ability的skills配置中内uris拼接为
`https://www.test.com:8080/query*`
(其中
*
表示通配符),包含调用方传入的want参数的uri,uri匹配成功。
4.
调用方传入的want参数的type不为空,待匹配Ability的skills配置中的type不为空且包含调用方传入的want参数的type,type匹配成功。
!
[
stage-want1
](
figures/stage-want1.png
)
当有多个匹配应用时,会被应用选择器展示给用户进行选择。 示意效果如下图所示。
<img
src=
"figures/ability-startup-with-implicit-want1.png"
height=
"600"
/>
zh-cn/application-dev/application-models/figures/ability-startup-with-implicit-want1.png
0 → 100644
浏览文件 @
f5db12bf
213.8 KB
zh-cn/application-dev/application-models/figures/stage-want1.png
已删除
100644 → 0
浏览文件 @
860bedd4
41.1 KB
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录