js-apis-uri.md 4.5 KB
Newer Older
1
# @ohos.uri (URI字符串解析)
Z
zengyawen 已提交
2

3 4
> **说明:**
>
Z
zengyawen 已提交
5 6 7 8 9
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块

10
```js
Z
zengyawen 已提交
11 12 13 14 15 16 17
import uri from '@ohos.uri'  
```

## URI

### 属性

18
**系统能力:** SystemCapability.Utils.Lang
Z
zengyawen 已提交
19

20
| 名称 | 类型 | 可读 | 可写 | 说明 |
Z
zengyawen 已提交
21 22
| -------- | -------- | -------- | -------- | -------- |
| scheme | string | 是 | 否 | 获取URI 的协议部分。 |
23
| userInfo | string | 是 | 否 | 获取 URI 的用户信息部分。 |
Z
zengyawen 已提交
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| host | string | 是 | 否 | 获取 URI 的主机名部分(不带端口)。 |
| port | string | 是 | 否 | 获取 URI 的端口部分。 |
| path | string | 是 | 否 | 获取 URI 的路径部分。 |
| query | string | 是 | 否 | 获取 URI 的查询部分。 |
| fragment | string | 是 | 否 | 获取 URI 的片段部分 |
| authority | string | 是 | 否 | 获取此URI的解码权限组件部分。 |
| ssp | string | 是 | 否 | 获取URI的解码方案特定部分。 |


### constructor

constructor(uri: string)

constructor是URI的构造函数。

Z
zengyawen 已提交
39 40
**系统能力:** SystemCapability.Utils.Lang

Z
zengyawen 已提交
41
**参数:**
Z
zengyawen 已提交
42

43 44 45
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| uri | string | 是 | 入参对象。 |
Z
zengyawen 已提交
46 47 48

**示例:**

49
```js
Z
zengyawen 已提交
50 51
let mm = 'https://username:password@host:8080/directory/file?foo=1&bar=2#fragment';
new uri.URI(mm); // Output 'https://username:password@host:8080/directory/file?foo=1&bar=2#fragment';
Z
zengyawen 已提交
52
```
53
```js
Z
zengyawen 已提交
54
new uri.URI('https://username:password@host:8080'); // Output 'https://username:password@host:8080';
Z
zengyawen 已提交
55
```
Z
zengyawen 已提交
56 57 58 59 60 61


### toString

toString(): string

Z
zengyawen 已提交
62 63
**系统能力:** SystemCapability.Utils.Lang

64
返回适用于URI中的查询字符串。
Z
zengyawen 已提交
65

Z
zengyawen 已提交
66 67 68 69 70
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| string | 返回网址的字符串序列化。 |
Z
zengyawen 已提交
71

Z
zengyawen 已提交
72 73
**示例:**

74
```js
Z
zengyawen 已提交
75
const result = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da');
S
shikai-123 已提交
76
result.toString()
Z
zengyawen 已提交
77
```
Z
zengyawen 已提交
78 79


80
### equals<sup>(deprecated)</sup>
81 82 83 84

> **说明:**
>
> 从API version 8开始支持,从API version 9开始废弃,建议使用[equalsTo<sup>9+</sup>](#equalsto9)替代。
Z
zengyawen 已提交
85 86 87 88 89

equals(other: URI): boolean

判断此URI是否与其他URI对象相等。

Z
zengyawen 已提交
90 91
**系统能力:** SystemCapability.Utils.Lang

Z
zengyawen 已提交
92
**参数:**
Z
zengyawen 已提交
93

Z
zengyawen 已提交
94 95 96
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| other | [URI](#uri) | 是 | 需要比较的URI对象。 |
Z
zengyawen 已提交
97

Z
zengyawen 已提交
98 99 100 101 102 103 104 105
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| boolean | 返回true表示相等,否则返回false。 |

**示例:**

106
```js
Z
zengyawen 已提交
107 108
const uriInstance = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da');
const uriInstance1 = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da#fragment');
Z
zengyawen 已提交
109 110
uriInstance.equals(uriInstance1);
```
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
### equalsTo<sup>9+</sup>

equalsTo(other: URI): boolean

判断此URI是否与其他URI对象相等。

**系统能力:** SystemCapability.Utils.Lang

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| other | [URI](#uri) | 是 | 需要比较的URI对象。 |

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| boolean | 返回true表示相等,否则返回false。 |

**示例:**

```js
Z
zengyawen 已提交
134 135
const uriInstance = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da');
const uriInstance1 = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da#fragment');
136 137
uriInstance.equalsTo(uriInstance1);
```
Z
zengyawen 已提交
138 139 140

### checkIsAbsolute

Z
zengyawen 已提交
141 142
checkIsAbsolute(): boolean

143
判断此URI是否为绝对URI(是否定义了scheme组件)。
Z
zengyawen 已提交
144

Z
zengyawen 已提交
145 146
**系统能力:** SystemCapability.Utils.Lang

Z
zengyawen 已提交
147
**返回值:**
Z
zengyawen 已提交
148

Z
zengyawen 已提交
149 150 151 152 153 154
| 类型 | 说明 |
| -------- | -------- |
| boolean | 返回true表示该URI是否为绝对URI。 |

**示例:**

155
```js
Z
zengyawen 已提交
156
const uriInstance = new uri.URI('https://username:password@www.qwer.com:8080?query=pppppp');
Z
zengyawen 已提交
157 158
uriInstance.checkIsAbsolute();
```
Z
zengyawen 已提交
159 160 161 162 163 164 165 166


### normalize

normalize(): URI

规范化此URI的路径。

Z
zengyawen 已提交
167 168
**系统能力:** SystemCapability.Utils.Lang

Z
zengyawen 已提交
169 170 171 172 173 174 175
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| URI | 返回一个path被规范化后的URI对象。 |

**示例:**
176

177
```js
Z
zengyawen 已提交
178
const uriInstance = new uri.URI('https://username:password@www.qwer.com:8080/path/path1/../path2/./path3?query=pppppp');
Z
zengyawen 已提交
179 180 181
let uriInstance1 = uriInstance.normalize();
uriInstance1.path;
```