js-apis-uri.md 4.6 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 50 51 52 53 54
**错误码:**

以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)

| 错误码ID | 错误信息 |
| -------- | -------- |
| 10200002 | Invalid uri string. |

Z
zengyawen 已提交
55 56
**示例:**

57
```js
Z
zengyawen 已提交
58 59
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 已提交
60
```
61
```js
Z
zengyawen 已提交
62
new uri.URI('https://username:password@host:8080'); // Output 'https://username:password@host:8080';
Z
zengyawen 已提交
63
```
Z
zengyawen 已提交
64 65 66 67 68 69


### toString

toString(): string

Z
zengyawen 已提交
70 71
**系统能力:** SystemCapability.Utils.Lang

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

Z
zengyawen 已提交
74 75 76 77 78
**返回值:**

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

Z
zengyawen 已提交
80 81
**示例:**

82
```js
Z
zengyawen 已提交
83
const result = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da');
S
shikai-123 已提交
84
result.toString()
Z
zengyawen 已提交
85
```
Z
zengyawen 已提交
86 87


88
### equals<sup>(deprecated)</sup>
89

Z
zengyawen 已提交
90 91 92 93
equals(other: URI): boolean

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

94 95 96 97
> **说明:**
>
> 从API version 8开始支持,从API version 9开始废弃,建议使用[equalsTo<sup>9+</sup>](#equalsto9)替代。

Z
zengyawen 已提交
98 99
**系统能力:** SystemCapability.Utils.Lang

Z
zengyawen 已提交
100
**参数:**
Z
zengyawen 已提交
101

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

Z
zengyawen 已提交
106 107 108 109 110 111 112 113
**返回值:**

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

**示例:**

114
```js
115 116
const uriInstance = new uri.URI('https://gg:gaogao@[::]:88/path/path66?foooo#gaogao');
const uriInstance1 = new uri.URI('https://gg:gaogao@[::]:88/path/path66?foooo#gaogao');
Z
zengyawen 已提交
117 118
uriInstance.equals(uriInstance1);
```
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
### equalsTo<sup>9+</sup>

equalsTo(other: URI): boolean

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

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

**参数:**

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

**返回值:**

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

**示例:**

```js
142 143
const uriInstance = new uri.URI('https://gg:gaogao@[::]:88/path/path66?foooo#gaogao');
const uriInstance1 = new uri.URI('https://gg:gaogao@[::]:88/path/path66?foooo#gaogao');
144 145
uriInstance.equalsTo(uriInstance1);
```
Z
zengyawen 已提交
146 147 148

### checkIsAbsolute

Z
zengyawen 已提交
149 150
checkIsAbsolute(): boolean

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

Z
zengyawen 已提交
153 154
**系统能力:** SystemCapability.Utils.Lang

Z
zengyawen 已提交
155
**返回值:**
Z
zengyawen 已提交
156

Z
zengyawen 已提交
157 158
| 类型 | 说明 |
| -------- | -------- |
159
| boolean | 如果是绝对URI返回true,否则返回false。|
Z
zengyawen 已提交
160 161 162

**示例:**

163
```js
Z
zengyawen 已提交
164
const uriInstance = new uri.URI('https://username:password@www.qwer.com:8080?query=pppppp');
Z
zengyawen 已提交
165 166
uriInstance.checkIsAbsolute();
```
Z
zengyawen 已提交
167 168 169 170 171 172 173 174


### normalize

normalize(): URI

规范化此URI的路径。

Z
zengyawen 已提交
175 176
**系统能力:** SystemCapability.Utils.Lang

Z
zengyawen 已提交
177 178 179 180 181 182 183
**返回值:**

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

**示例:**
184

185
```js
Z
zengyawen 已提交
186
const uriInstance = new uri.URI('https://username:password@www.qwer.com:8080/path/path1/../path2/./path3?query=pppppp');
Z
zengyawen 已提交
187 188 189
let uriInstance1 = uriInstance.normalize();
uriInstance1.path;
```