• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 使用隐式Want打开网址
2
3以打开浏览器为例,假设设备上安装了一个或多个浏览器应用。为了使浏览器应用能够正常工作,需要在[module.json5配置文件](../quick-start/module-configuration-file.md)进行配置,具体配置如下:
4
5```json
6{
7  "module": {
8    ...
9    "abilities": [
10      {
11        ...
12        "skills": [
13          {
14            "entities": [
15              "entity.system.home",
16              "entity.system.browsable"
17              ...
18            ],
19            "actions": [
20              "action.system.home",
21              "ohos.want.action.viewData"
22              ...
23            ],
24            "uris": [
25              {
26                "scheme": "https",
27                "host": "www.test.com",
28                "port": "8080",
29                // prefix matching
30                "pathStartWith": "query"
31              },
32              {
33                "scheme": "http",
34                ...
35              }
36              ...
37            ]
38          }
39        ]
40      }
41    ]
42  }
43}
44```
45
46在调用方UIAbility中,使用隐式Want方式启动浏览器应用。
47
48```ts
49import common from '@ohos.app.ability.common';
50
51function implicitStartAbility() {
52  let context = getContext(this) as common.UIAbilityContext;
53  let wantInfo = {
54    // uncomment line below if wish to implicitly query only in the specific bundle.
55    // bundleName: 'com.example.myapplication',
56    'action': 'ohos.want.action.viewData',
57    // entities can be omitted.
58    'entities': ['entity.system.browsable'],
59    'uri': 'https://www.test.com:8080/query/student'
60  }
61  context.startAbility(wantInfo).then(() => {
62    ...
63  }).catch((err) => {
64    ...
65  })
66}
67```
68
69匹配过程分析:
70
711. 调用方传入的want参数的action不为空,待匹配目标应用组件的skills配置中的actions不为空且包含调用方传入的want参数的action,action匹配成功。
722. 调用方传入的want参数的entities不为空,待匹配目标应用组件的skills配置中的entities不为空且包含调用方传入的want参数的entities,entities匹配成功。
733. 待匹配目标应用组件的skills配置中内uris拼接为`https://www.test.com:8080/query*`(其中*表示通配符),包含调用方传入的want参数的uri,uri匹配成功。
74
75当存在多个匹配的应用时,系统将弹出应用选择框供用户选择。示意效果如下图所示。
76![](figures/ability-startup-with-implicit-want1.png)
77