1e41f4b71Sopenharmony_ci# @ohos.uri (URI字符串解析) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci本模块提供URI字符串解析的相关功能。URI遵循RFC3986规范标准,该标准定义了如何编码和解析用于定位网络资源的标识符,对于非标准场景解析不支持。 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci> **说明:** 6e41f4b71Sopenharmony_ci> 7e41f4b71Sopenharmony_ci> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci## 导入模块 11e41f4b71Sopenharmony_ci 12e41f4b71Sopenharmony_ci```ts 13e41f4b71Sopenharmony_ciimport { uri } from '@kit.ArkTS'; 14e41f4b71Sopenharmony_ci``` 15e41f4b71Sopenharmony_ci 16e41f4b71Sopenharmony_ci## URI 17e41f4b71Sopenharmony_ci 18e41f4b71Sopenharmony_ci构造URI对象,提供判断对象相等、规范路径等方法。 19e41f4b71Sopenharmony_ci 20e41f4b71Sopenharmony_ci### 属性 21e41f4b71Sopenharmony_ci 22e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang 23e41f4b71Sopenharmony_ci 24e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 25e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | -------- | 26e41f4b71Sopenharmony_ci| scheme | string | 是 | 否 | 获取URI的协议部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。| 27e41f4b71Sopenharmony_ci| userInfo | string | 是 | 否 | 获取URI的用户信息部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。 | 28e41f4b71Sopenharmony_ci| host | string | 是 | 否 | 获取URI的主机名部分(不带端口),若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。| 29e41f4b71Sopenharmony_ci| port | string | 是 | 否 | 获取URI的端口部分。 <br/>**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。 | 30e41f4b71Sopenharmony_ci| path | string | 是 | 否 | 获取URI的路径部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。 | 31e41f4b71Sopenharmony_ci| query | string | 是 | 否 | 获取URI的查询部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。 | 32e41f4b71Sopenharmony_ci| fragment | string | 是 | 否 | 获取URI的片段部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。 | 33e41f4b71Sopenharmony_ci| authority | string | 是 | 否 | 获取此URI的解码权限组件部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。 | 34e41f4b71Sopenharmony_ci| ssp | string | 是 | 否 | 获取URI的解码方案特定部分,方案特定部分是URI的一部分,它包含了特定于协议或方案的信息。<br/>**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。 | 35e41f4b71Sopenharmony_ci| encodedUserInfo<sup>12+</sup> | string | 是 | 否 | 获取URI的编码用户信息部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 12 开始,该接口支持在原子化服务中使用。 | 36e41f4b71Sopenharmony_ci| encodedPath<sup>12+</sup> | string | 是 | 否 | 获取URI的编码路径部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 12 开始,该接口支持在原子化服务中使用。 | 37e41f4b71Sopenharmony_ci| encodedQuery<sup>12+</sup> | string | 是 | 否 | 获取URI的编码查询部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 12 开始,该接口支持在原子化服务中使用。 | 38e41f4b71Sopenharmony_ci| encodedFragment<sup>12+</sup> | string | 是 | 否 | 获取URI的编码片段部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 12 开始,该接口支持在原子化服务中使用。 | 39e41f4b71Sopenharmony_ci| encodedAuthority<sup>12+</sup> | string | 是 | 否 | 获取URI的编码权限组件部分,若无此部分则返回null对象。 <br/>**原子化服务API:** 从API version 12 开始,该接口支持在原子化服务中使用。 | 40e41f4b71Sopenharmony_ci| encodedSSP<sup>12+</sup> | string | 是 | 否 | 获取URI的编码方案特定部分。<br/>**原子化服务API:** 从API version 12 开始,该接口支持在原子化服务中使用。 | 41e41f4b71Sopenharmony_ci 42e41f4b71Sopenharmony_ci### 命名规则 43e41f4b71Sopenharmony_ci 44e41f4b71Sopenharmony_ci**命名形式:** 45e41f4b71Sopenharmony_ci 46e41f4b71Sopenharmony_ci标准uri定义主要由以下三个部分组成: 47e41f4b71Sopenharmony_ci[scheme:]scheme-specific-part[#fragment]。 48e41f4b71Sopenharmony_ci 49e41f4b71Sopenharmony_ci将URI格式细化一些则可分为: 50e41f4b71Sopenharmony_ci[scheme:][//authority][path][?query][#fragment]。 51e41f4b71Sopenharmony_ci 52e41f4b71Sopenharmony_ci将URI格式进一步细化可分为: 53e41f4b71Sopenharmony_ci[scheme:][//[user-info@]host[:port]][path][?query][#fragment]。 54e41f4b71Sopenharmony_ci 55e41f4b71Sopenharmony_ci- scheme: 协议名,与scheme-specific-part以:进行分隔,包含scheme部分的URI为绝对URI,不包含scheme部分的URI为相对URI,根据需要填写。例如http、https、ftp、datashare等。 56e41f4b71Sopenharmony_ci- scheme-specific-part: URI的特定解码方案特定部分,位于[scheme:]和[#fragment]之间由[//][authority][path][?query]组成,此部分以/开头的为分层URI,不以/开头的为不透明URI,根据需要填写。 57e41f4b71Sopenharmony_ci - authority: URI的解码权限组件部分。由[userinfo@]host[:port]组成,根据需要填写。 58e41f4b71Sopenharmony_ci - userinfo: 用户信息,与host通过@进行分隔,根据需要填写。 59e41f4b71Sopenharmony_ci - host: 服务器的主机名部分,当authority存在时,此项必填。 60e41f4b71Sopenharmony_ci - port: 服务器端口,默认值为-1。根据需要填写。 61e41f4b71Sopenharmony_ci - path: 路径信息,位于host与query之间以 / 进行分割,根据需要填写。 62e41f4b71Sopenharmony_ci - query: 查询部分,位于path和fragment之间,以 ? 开头的键值对格式,以&分割键值对,以=分割键值,根据需要填写。 63e41f4b71Sopenharmony_ci- fragment: 片段部分,以#与scheme-specific-part进行分隔,根据需要填写。 64e41f4b71Sopenharmony_ci 65e41f4b71Sopenharmony_ci**URI示例:** 66e41f4b71Sopenharmony_ci 67e41f4b71Sopenharmony_ci```ts 68e41f4b71Sopenharmony_ciconst uriObj1 = new uri.URI("ftp://ftp.aaa.bbb.ccc/dddd/eee.txt"); 69e41f4b71Sopenharmony_ciconsole.info(uriObj1.host) // ftp.aaa.bbb.ccc 70e41f4b71Sopenharmony_ciconsole.info(uriObj1.fragment) // null 71e41f4b71Sopenharmony_ciconsole.info(uriObj1.path) // /dddd/eee.txt 72e41f4b71Sopenharmony_ciconsole.info(uriObj1.scheme) // ftp 73e41f4b71Sopenharmony_ciconsole.info(uriObj1.userInfo) // null 74e41f4b71Sopenharmony_ciconsole.info(uriObj1.port) // -1 75e41f4b71Sopenharmony_ciconsole.info(uriObj1.query) // null 76e41f4b71Sopenharmony_ci 77e41f4b71Sopenharmony_ciconst uriObj2 = new uri.URI("gopher://spinaltap.micro.umn.edu/00/Weather/California/Los%20Angeles#fragment"); 78e41f4b71Sopenharmony_ciconsole.info(uriObj2.host) // spinaltap.micro.umn.edu 79e41f4b71Sopenharmony_ciconsole.info(uriObj2.fragment) // fragment 80e41f4b71Sopenharmony_ciconsole.info(uriObj2.path) // /00/Weather/California/Los Angeles 81e41f4b71Sopenharmony_ciconsole.info(uriObj2.scheme) // gopher 82e41f4b71Sopenharmony_ciconsole.info(uriObj2.userInfo) // null 83e41f4b71Sopenharmony_ciconsole.info(uriObj2.port) //-1 84e41f4b71Sopenharmony_ciconsole.info(uriObj2.query) // null 85e41f4b71Sopenharmony_ci 86e41f4b71Sopenharmony_ciconst uriObj3 = new uri.URI("datashare:///com.samples.datasharetest.DataShare/DB00/TBL00"); 87e41f4b71Sopenharmony_ciconsole.info(uriObj3.host) // null 88e41f4b71Sopenharmony_ciconsole.info(uriObj3.fragment) // null 89e41f4b71Sopenharmony_ciconsole.info(uriObj3.path) // /com.samples.datasharetest.DataShare/DB00/TBL00 90e41f4b71Sopenharmony_ciconsole.info(uriObj3.scheme) // datashare 91e41f4b71Sopenharmony_ciconsole.info(uriObj3.userInfo) // null 92e41f4b71Sopenharmony_ciconsole.info(uriObj3.port) // -1 93e41f4b71Sopenharmony_ciconsole.info(uriObj3.query) // null 94e41f4b71Sopenharmony_ci 95e41f4b71Sopenharmony_ciconst uriObj4 = new uri.URI("https://username:password@host:8080/directory/file?foo=1&bar=2#fragment"); 96e41f4b71Sopenharmony_ciconsole.info(uriObj4.host) // host 97e41f4b71Sopenharmony_ciconsole.info(uriObj4.fragment) // fragment 98e41f4b71Sopenharmony_ciconsole.info(uriObj4.path) // /directory/file 99e41f4b71Sopenharmony_ciconsole.info(uriObj4.scheme) // https 100e41f4b71Sopenharmony_ciconsole.info(uriObj4.userInfo) // username:password 101e41f4b71Sopenharmony_ciconsole.info(uriObj4.port) // 8080 102e41f4b71Sopenharmony_ciconsole.info(uriObj4.query) // foo=1&bar=2 103e41f4b71Sopenharmony_ci 104e41f4b71Sopenharmony_ciconst uriObj5 = new uri.URI("dataability:///com.example.DataAbility"); 105e41f4b71Sopenharmony_ciconsole.info(uriObj5.host) // null 106e41f4b71Sopenharmony_ciconsole.info(uriObj5.fragment) // null 107e41f4b71Sopenharmony_ciconsole.info(uriObj5.path) // /com.example.DataAbility: 108e41f4b71Sopenharmony_ciconsole.info(uriObj5.scheme) // dataability 109e41f4b71Sopenharmony_ciconsole.info(uriObj5.userInfo) // null 110e41f4b71Sopenharmony_ciconsole.info(uriObj5.port) // -1 111e41f4b71Sopenharmony_ciconsole.info(uriObj5.query) // null 112e41f4b71Sopenharmony_ci 113e41f4b71Sopenharmony_ciconst uriObj6 = new uri.URI("https://username:my+name@host:8080/directory/my+file?foo=1&bar=2#fragment"); 114e41f4b71Sopenharmony_ciconsole.info(uriObj6.encodedUserInfo) // username:my+name 115e41f4b71Sopenharmony_ciconsole.info(uriObj6.encodedPath) // /directory/my+file 116e41f4b71Sopenharmony_ciconsole.info(uriObj6.encodedQuery) // foo=1&bar=2 117e41f4b71Sopenharmony_ciconsole.info(uriObj6.encodedFragment) // fragment 118e41f4b71Sopenharmony_ciconsole.info(uriObj6.encodedAuthority) // username:my+name@host:8080 119e41f4b71Sopenharmony_ciconsole.info(uriObj6.encodedSSP) // //username:my+name@host:8080/directory/my+file?foo=1&bar=2 120e41f4b71Sopenharmony_ci 121e41f4b71Sopenharmony_cilet uriObj7 = new uri.URI("www.abc.com:8080/directory/file?ab=pppppp#qwer=da"); 122e41f4b71Sopenharmony_ciconsole.log(uriObj7.scheme) // www.abc.com 123e41f4b71Sopenharmony_ciconsole.log(uriObj7.host) // null 124e41f4b71Sopenharmony_ciconsole.log(uriObj7.port) // -1 125e41f4b71Sopenharmony_ciconsole.log(uriObj7.path) // null 126e41f4b71Sopenharmony_ciconsole.log(uriObj7.query) // null 127e41f4b71Sopenharmony_ciconsole.log(uriObj7.authority) // null 128e41f4b71Sopenharmony_ciconsole.log(uriObj7.fragment) // qwer=da 129e41f4b71Sopenharmony_ciconsole.log(uriObj7.ssp) // 8080/directory/file?ab=pppppp 130e41f4b71Sopenharmony_ciconsole.log("result:", uriObj7.checkIsAbsolute()) // result: true 131e41f4b71Sopenharmony_ci``` 132e41f4b71Sopenharmony_ci 133e41f4b71Sopenharmony_ci### constructor 134e41f4b71Sopenharmony_ci 135e41f4b71Sopenharmony_ciconstructor(uri: string) 136e41f4b71Sopenharmony_ci 137e41f4b71Sopenharmony_ciconstructor是URI的构造函数。 138e41f4b71Sopenharmony_ci 139e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。 140e41f4b71Sopenharmony_ci 141e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang 142e41f4b71Sopenharmony_ci 143e41f4b71Sopenharmony_ci**参数:** 144e41f4b71Sopenharmony_ci 145e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 146e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 147e41f4b71Sopenharmony_ci| uri | string | 是 | 入参对象。 | 148e41f4b71Sopenharmony_ci 149e41f4b71Sopenharmony_ci**错误码:** 150e41f4b71Sopenharmony_ci 151e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。 152e41f4b71Sopenharmony_ci 153e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 154e41f4b71Sopenharmony_ci| -------- | -------- | 155e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 156e41f4b71Sopenharmony_ci| 10200002 | Invalid uri string. | 157e41f4b71Sopenharmony_ci 158e41f4b71Sopenharmony_ci**示例:** 159e41f4b71Sopenharmony_ci 160e41f4b71Sopenharmony_ci```ts 161e41f4b71Sopenharmony_cilet mm = 'https://username:password@host:8080/directory/file?foo=1&bar=2#fragment'; 162e41f4b71Sopenharmony_cinew uri.URI(mm); 163e41f4b71Sopenharmony_ci``` 164e41f4b71Sopenharmony_ci```ts 165e41f4b71Sopenharmony_cinew uri.URI('https://username:password@host:8080'); 166e41f4b71Sopenharmony_ci``` 167e41f4b71Sopenharmony_ci 168e41f4b71Sopenharmony_ci 169e41f4b71Sopenharmony_ci### toString 170e41f4b71Sopenharmony_ci 171e41f4b71Sopenharmony_citoString(): string 172e41f4b71Sopenharmony_ci 173e41f4b71Sopenharmony_ci将URI转化为编码后的字符串。 174e41f4b71Sopenharmony_ci 175e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang 176e41f4b71Sopenharmony_ci 177e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。 178e41f4b71Sopenharmony_ci 179e41f4b71Sopenharmony_ci**返回值:** 180e41f4b71Sopenharmony_ci 181e41f4b71Sopenharmony_ci| 类型 | 说明 | 182e41f4b71Sopenharmony_ci| -------- | -------- | 183e41f4b71Sopenharmony_ci| string | 返回URI的字符串序列化。 | 184e41f4b71Sopenharmony_ci 185e41f4b71Sopenharmony_ci**示例:** 186e41f4b71Sopenharmony_ci 187e41f4b71Sopenharmony_ci```ts 188e41f4b71Sopenharmony_ciconst result = new uri.URI('https://username:password@host:8080/directory/file?ab=pppppp#qwer da'); 189e41f4b71Sopenharmony_cilet result1 = result.toString(); // https://username:password@host:8080/directory/file?ab=pppppp#qwer%20da 190e41f4b71Sopenharmony_ci``` 191e41f4b71Sopenharmony_ci 192e41f4b71Sopenharmony_ci### equalsTo<sup>9+</sup> 193e41f4b71Sopenharmony_ci 194e41f4b71Sopenharmony_ciequalsTo(other: URI): boolean 195e41f4b71Sopenharmony_ci 196e41f4b71Sopenharmony_ci判断此URI是否与其他URI对象相等。 197e41f4b71Sopenharmony_ci 198e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。 199e41f4b71Sopenharmony_ci 200e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang 201e41f4b71Sopenharmony_ci 202e41f4b71Sopenharmony_ci**参数:** 203e41f4b71Sopenharmony_ci 204e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 205e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 206e41f4b71Sopenharmony_ci| other | [URI](#uri) | 是 | 需要比较的URI对象。 | 207e41f4b71Sopenharmony_ci 208e41f4b71Sopenharmony_ci**返回值:** 209e41f4b71Sopenharmony_ci 210e41f4b71Sopenharmony_ci| 类型 | 说明 | 211e41f4b71Sopenharmony_ci| -------- | -------- | 212e41f4b71Sopenharmony_ci| boolean | 返回true表示相等,否则返回false。 | 213e41f4b71Sopenharmony_ci 214e41f4b71Sopenharmony_ci**错误码:** 215e41f4b71Sopenharmony_ci 216e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 217e41f4b71Sopenharmony_ci 218e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 219e41f4b71Sopenharmony_ci| -------- | -------- | 220e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 221e41f4b71Sopenharmony_ci 222e41f4b71Sopenharmony_ci**示例:** 223e41f4b71Sopenharmony_ci 224e41f4b71Sopenharmony_ci```ts 225e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da'); 226e41f4b71Sopenharmony_ciconst uriInstance1 = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da'); 227e41f4b71Sopenharmony_cilet result = uriInstance.equalsTo(uriInstance1); // true 228e41f4b71Sopenharmony_ci``` 229e41f4b71Sopenharmony_ci 230e41f4b71Sopenharmony_ci### checkIsAbsolute 231e41f4b71Sopenharmony_ci 232e41f4b71Sopenharmony_cicheckIsAbsolute(): boolean 233e41f4b71Sopenharmony_ci 234e41f4b71Sopenharmony_ci判断此URI是否为绝对URI(是否定义了scheme组件)。 235e41f4b71Sopenharmony_ci 236e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。 237e41f4b71Sopenharmony_ci 238e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang 239e41f4b71Sopenharmony_ci 240e41f4b71Sopenharmony_ci**返回值:** 241e41f4b71Sopenharmony_ci 242e41f4b71Sopenharmony_ci| 类型 | 说明 | 243e41f4b71Sopenharmony_ci| -------- | -------- | 244e41f4b71Sopenharmony_ci| boolean | 如果是绝对URI返回true,否则返回false。| 245e41f4b71Sopenharmony_ci 246e41f4b71Sopenharmony_ci**示例:** 247e41f4b71Sopenharmony_ci 248e41f4b71Sopenharmony_ci```ts 249e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI('https://username:password@www.qwer.com:8080?query=pppppp'); 250e41f4b71Sopenharmony_ciconsole.info(`${uriInstance.checkIsAbsolute()}`); // true 251e41f4b71Sopenharmony_ciconst uriInstance1 = new uri.URI('xxx.com/suppliers.htm'); 252e41f4b71Sopenharmony_ciconsole.info(`${uriInstance1.checkIsAbsolute()}`); // false 253e41f4b71Sopenharmony_ci``` 254e41f4b71Sopenharmony_ci 255e41f4b71Sopenharmony_ci 256e41f4b71Sopenharmony_ci### normalize 257e41f4b71Sopenharmony_ci 258e41f4b71Sopenharmony_cinormalize(): URI 259e41f4b71Sopenharmony_ci 260e41f4b71Sopenharmony_ci规范化此URI的路径。 261e41f4b71Sopenharmony_ci 262e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。 263e41f4b71Sopenharmony_ci 264e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang 265e41f4b71Sopenharmony_ci 266e41f4b71Sopenharmony_ci**返回值:** 267e41f4b71Sopenharmony_ci 268e41f4b71Sopenharmony_ci| 类型 | 说明 | 269e41f4b71Sopenharmony_ci| -------- | -------- | 270e41f4b71Sopenharmony_ci| [URI](#uri) | 返回一个path被规范化后的URI对象。 | 271e41f4b71Sopenharmony_ci 272e41f4b71Sopenharmony_ci**示例:** 273e41f4b71Sopenharmony_ci 274e41f4b71Sopenharmony_ci```ts 275e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI('https://username:password@www.qwer.com:8080/path/path1/../path2/./path3?query=pppppp'); 276e41f4b71Sopenharmony_ciconsole.info(uriInstance.path); // /path/path1/../path2/./path3 277e41f4b71Sopenharmony_cilet uriInstance1 = uriInstance.normalize(); 278e41f4b71Sopenharmony_ciconsole.info(uriInstance1.path); // /path/path2/path3 279e41f4b71Sopenharmony_ci``` 280e41f4b71Sopenharmony_ci 281e41f4b71Sopenharmony_ci### checkRelative<sup>12+</sup> 282e41f4b71Sopenharmony_ci 283e41f4b71Sopenharmony_cicheckRelative(): boolean 284e41f4b71Sopenharmony_ci 285e41f4b71Sopenharmony_ci判断此URI是否为相对URI,相对URI指的是不包含协议(scheme)部分的URI。 286e41f4b71Sopenharmony_ci 287e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。 288e41f4b71Sopenharmony_ci 289e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang 290e41f4b71Sopenharmony_ci 291e41f4b71Sopenharmony_ci**返回值:** 292e41f4b71Sopenharmony_ci 293e41f4b71Sopenharmony_ci| 类型 | 说明 | 294e41f4b71Sopenharmony_ci| ------- | ------------------------------------------ | 295e41f4b71Sopenharmony_ci| boolean | 如果是相对URI返回true,否则返回false。 | 296e41f4b71Sopenharmony_ci 297e41f4b71Sopenharmony_ci**示例:** 298e41f4b71Sopenharmony_ci 299e41f4b71Sopenharmony_ci```ts 300e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("https://username:password@www.qwer.com:8080?query=p"); 301e41f4b71Sopenharmony_ciconsole.info(`${uriInstance.checkRelative()}`); // false 302e41f4b71Sopenharmony_ciconst uriInstance1 = new uri.URI("/images/pic.jpg"); 303e41f4b71Sopenharmony_ciconsole.info(`${uriInstance1.checkRelative()}`); // true 304e41f4b71Sopenharmony_ci``` 305e41f4b71Sopenharmony_ci 306e41f4b71Sopenharmony_ci### checkOpaque<sup>12+</sup> 307e41f4b71Sopenharmony_ci 308e41f4b71Sopenharmony_cicheckOpaque(): boolean 309e41f4b71Sopenharmony_ci 310e41f4b71Sopenharmony_ci判断此URI是否为不透明URI,方案特定部分不以“/”开头的URI为不透明的URI。 311e41f4b71Sopenharmony_ci 312e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。 313e41f4b71Sopenharmony_ci 314e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang 315e41f4b71Sopenharmony_ci 316e41f4b71Sopenharmony_ci**返回值:** 317e41f4b71Sopenharmony_ci 318e41f4b71Sopenharmony_ci| 类型 | 说明 | 319e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------- | 320e41f4b71Sopenharmony_ci| boolean | 如果是不透明的URI返回true,否则返回false。 | 321e41f4b71Sopenharmony_ci 322e41f4b71Sopenharmony_ci**示例:** 323e41f4b71Sopenharmony_ci 324e41f4b71Sopenharmony_ci```ts 325e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("http://www.test.com/images/pic.jpg"); 326e41f4b71Sopenharmony_ciconsole.info(`${uriInstance.checkOpaque()}`); // false 327e41f4b71Sopenharmony_ciconst uriInstance1 = new uri.URI("mailto:user@example.com"); 328e41f4b71Sopenharmony_ciconsole.info(`${uriInstance1.checkOpaque()}`); // true 329e41f4b71Sopenharmony_ci``` 330e41f4b71Sopenharmony_ci 331e41f4b71Sopenharmony_ci### checkHierarchical<sup>12+</sup> 332e41f4b71Sopenharmony_ci 333e41f4b71Sopenharmony_cicheckHierarchical(): boolean 334e41f4b71Sopenharmony_ci 335e41f4b71Sopenharmony_ci判断此URI是否为分层URI,方案特定部分以“/”开头的URI为分层的URI。相对URI也是分层的。 336e41f4b71Sopenharmony_ci 337e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。 338e41f4b71Sopenharmony_ci 339e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang 340e41f4b71Sopenharmony_ci 341e41f4b71Sopenharmony_ci**返回值:** 342e41f4b71Sopenharmony_ci 343e41f4b71Sopenharmony_ci| 类型 | 说明 | 344e41f4b71Sopenharmony_ci| ------- | -------------------------------------------- | 345e41f4b71Sopenharmony_ci| boolean | 如果是分层的URI返回true,否则返回false。 | 346e41f4b71Sopenharmony_ci 347e41f4b71Sopenharmony_ci**示例:** 348e41f4b71Sopenharmony_ci 349e41f4b71Sopenharmony_ci```ts 350e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("http://www.test.com/images/pic.jpg"); 351e41f4b71Sopenharmony_ciconsole.info(`${uriInstance.checkHierarchical()}`); // true 352e41f4b71Sopenharmony_ciconst uriInstance1 = new uri.URI("mailto:user@example.com"); 353e41f4b71Sopenharmony_ciconsole.info(`${uriInstance1.checkHierarchical()}`); // false 354e41f4b71Sopenharmony_ci``` 355e41f4b71Sopenharmony_ci 356e41f4b71Sopenharmony_ci### getQueryValue<sup>12+</sup> 357e41f4b71Sopenharmony_ci 358e41f4b71Sopenharmony_cigetQueryValue(key:string): string 359e41f4b71Sopenharmony_ci 360e41f4b71Sopenharmony_ci根据给定的查询关键词,从URI查询参数部分中提取出该关键词对应的第一个值,若查询参数中存在已编码过的内容,需将对应Key进行解码后获取Value。 361e41f4b71Sopenharmony_ci 362e41f4b71Sopenharmony_ci查询参数是出现在问号“?”之后的部分,它们由键值对组成,键和值之间用等号“=”连接,键值对之间使用与号“&”分隔。 363e41f4b71Sopenharmony_ci 364e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。 365e41f4b71Sopenharmony_ci 366e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang 367e41f4b71Sopenharmony_ci 368e41f4b71Sopenharmony_ci**参数:** 369e41f4b71Sopenharmony_ci 370e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 371e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ----------------------- | 372e41f4b71Sopenharmony_ci| key | string | 是 | 此URI查询参数的名称。 | 373e41f4b71Sopenharmony_ci 374e41f4b71Sopenharmony_ci**返回值:** 375e41f4b71Sopenharmony_ci 376e41f4b71Sopenharmony_ci| 类型 | 说明 | 377e41f4b71Sopenharmony_ci| ------ | ----------------------------- | 378e41f4b71Sopenharmony_ci| string | 返回第一个此URI查询参数的值,若未找到对应值则返回null对象。 | 379e41f4b71Sopenharmony_ci 380e41f4b71Sopenharmony_ci**错误码:** 381e41f4b71Sopenharmony_ci 382e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 383e41f4b71Sopenharmony_ci 384e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 385e41f4b71Sopenharmony_ci| -------- | -------- | 386e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 387e41f4b71Sopenharmony_ci 388e41f4b71Sopenharmony_ci**示例:** 389e41f4b71Sopenharmony_ci 390e41f4b71Sopenharmony_ci```ts 391e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("https://www.com?param1=value1¶m2=value2"); 392e41f4b71Sopenharmony_ciconsole.info(uriInstance.getQueryValue("param1")); // value1 393e41f4b71Sopenharmony_cilet uriInstance1 = new uri.URI('https://www.zyy.ss?sa%3D=po%7E'); 394e41f4b71Sopenharmony_ciconsole.info(uriInstance1.getQueryValue('sa=')) // po~ 395e41f4b71Sopenharmony_ciconsole.info(uriInstance1.getQueryValue('abc')) // null 396e41f4b71Sopenharmony_ci``` 397e41f4b71Sopenharmony_ci 398e41f4b71Sopenharmony_ci### addQueryValue<sup>12+</sup> 399e41f4b71Sopenharmony_ci 400e41f4b71Sopenharmony_ciaddQueryValue(key:string, value:string): URI 401e41f4b71Sopenharmony_ci 402e41f4b71Sopenharmony_ci在当前URI的基础上添加查询参数,并创建一个新的URI,同时保持原有URI对象不变。 403e41f4b71Sopenharmony_ci 404e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。 405e41f4b71Sopenharmony_ci 406e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang 407e41f4b71Sopenharmony_ci 408e41f4b71Sopenharmony_ci**参数:** 409e41f4b71Sopenharmony_ci 410e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 411e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------------ | 412e41f4b71Sopenharmony_ci| key | string | 是 | 需要增添查询参数的名称。 | 413e41f4b71Sopenharmony_ci| value | string | 是 | 需要增添查询参数的值。 | 414e41f4b71Sopenharmony_ci 415e41f4b71Sopenharmony_ci**返回值:** 416e41f4b71Sopenharmony_ci 417e41f4b71Sopenharmony_ci| 类型 | 说明 | 418e41f4b71Sopenharmony_ci| ---- | -------------------------------- | 419e41f4b71Sopenharmony_ci| [URI](#uri) | 返回添加查询部分后的URI对象。 | 420e41f4b71Sopenharmony_ci 421e41f4b71Sopenharmony_ci**错误码:** 422e41f4b71Sopenharmony_ci 423e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 424e41f4b71Sopenharmony_ci 425e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 426e41f4b71Sopenharmony_ci| -------- | -------- | 427e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 428e41f4b71Sopenharmony_ci 429e41f4b71Sopenharmony_ci**示例:** 430e41f4b71Sopenharmony_ci 431e41f4b71Sopenharmony_ci```ts 432e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("https://www.test.com"); 433e41f4b71Sopenharmony_ciconst newRoute = uriInstance.addQueryValue("param1", "hello world"); 434e41f4b71Sopenharmony_ciconsole.info(newRoute.toString()); // https://www.test.com?param1=hello%20world 435e41f4b71Sopenharmony_ci``` 436e41f4b71Sopenharmony_ci 437e41f4b71Sopenharmony_ci### addSegment<sup>12+</sup> 438e41f4b71Sopenharmony_ci 439e41f4b71Sopenharmony_ciaddSegment(pathSegment:string): URI 440e41f4b71Sopenharmony_ci 441e41f4b71Sopenharmony_ci对给定的字段进行编码并将其追加到当前URI的path字段中,并创建一个新的URI返回,同时保持原有URI对象不变。 442e41f4b71Sopenharmony_ci 443e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。 444e41f4b71Sopenharmony_ci 445e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang 446e41f4b71Sopenharmony_ci 447e41f4b71Sopenharmony_ci**参数:** 448e41f4b71Sopenharmony_ci 449e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 450e41f4b71Sopenharmony_ci| ----------- | ------ | ---- | ------------------ | 451e41f4b71Sopenharmony_ci| pathSegment | string | 是 | 需要追加到路径部分的字段。 | 452e41f4b71Sopenharmony_ci 453e41f4b71Sopenharmony_ci**返回值:** 454e41f4b71Sopenharmony_ci 455e41f4b71Sopenharmony_ci| 类型 | 说明 | 456e41f4b71Sopenharmony_ci| ---- | -------------------------------- | 457e41f4b71Sopenharmony_ci| [URI](#uri) | 返回已追加字段的URI对象。 | 458e41f4b71Sopenharmony_ci 459e41f4b71Sopenharmony_ci**错误码:** 460e41f4b71Sopenharmony_ci 461e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 462e41f4b71Sopenharmony_ci 463e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 464e41f4b71Sopenharmony_ci| -------- | -------- | 465e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 466e41f4b71Sopenharmony_ci 467e41f4b71Sopenharmony_ci**示例:** 468e41f4b71Sopenharmony_ci 469e41f4b71Sopenharmony_ci```ts 470e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("http://www.test.com"); 471e41f4b71Sopenharmony_ciconst newRoute = uriInstance.addSegment("my image.jpg"); 472e41f4b71Sopenharmony_ciconsole.info(newRoute.toString()); // http://www.test.com/my%20image.jpg 473e41f4b71Sopenharmony_ci``` 474e41f4b71Sopenharmony_ci 475e41f4b71Sopenharmony_ci### addEncodedSegment<sup>12+</sup> 476e41f4b71Sopenharmony_ci 477e41f4b71Sopenharmony_ciaddEncodedSegment(pathSegment:string): URI 478e41f4b71Sopenharmony_ci 479e41f4b71Sopenharmony_ci通过将已编码的字段追加到当前URI的path字段中,并创建一个新的URI返回,同时保持原有URI对象不变。 480e41f4b71Sopenharmony_ci 481e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。 482e41f4b71Sopenharmony_ci 483e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang 484e41f4b71Sopenharmony_ci 485e41f4b71Sopenharmony_ci**参数:** 486e41f4b71Sopenharmony_ci 487e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 488e41f4b71Sopenharmony_ci| ----------- | ------ | ---- | ------------------ | 489e41f4b71Sopenharmony_ci| pathSegment | string | 是 | 需要追加到路径部分的编码字段。 | 490e41f4b71Sopenharmony_ci 491e41f4b71Sopenharmony_ci**返回值:** 492e41f4b71Sopenharmony_ci 493e41f4b71Sopenharmony_ci| 类型 | 说明 | 494e41f4b71Sopenharmony_ci| ---- | -------------------------------- | 495e41f4b71Sopenharmony_ci| [URI](#uri) | 返回已追加字段的URI对象。 | 496e41f4b71Sopenharmony_ci 497e41f4b71Sopenharmony_ci**错误码:** 498e41f4b71Sopenharmony_ci 499e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 500e41f4b71Sopenharmony_ci 501e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 502e41f4b71Sopenharmony_ci| -------- | -------- | 503e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 504e41f4b71Sopenharmony_ci 505e41f4b71Sopenharmony_ci**示例:** 506e41f4b71Sopenharmony_ci 507e41f4b71Sopenharmony_ci```ts 508e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("http://www.test.com"); 509e41f4b71Sopenharmony_ciconst newRoute = uriInstance.addEncodedSegment("my%20image.jpg"); 510e41f4b71Sopenharmony_ciconsole.info(newRoute.toString()); // http://www.test.com/my%20image.jpg 511e41f4b71Sopenharmony_ci``` 512e41f4b71Sopenharmony_ci 513e41f4b71Sopenharmony_ci### getQueryNames<sup>12+</sup> 514e41f4b71Sopenharmony_ci 515e41f4b71Sopenharmony_cigetQueryNames(): string[] 516e41f4b71Sopenharmony_ci 517e41f4b71Sopenharmony_ci获取URI查询部分中所有不重复的键。查询参数是出现在问号“?”之后的部分,它们由键值对组成,键和值之间用等号“=”连接,键值对之间使用与号“&”分隔。 518e41f4b71Sopenharmony_ci 519e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。 520e41f4b71Sopenharmony_ci 521e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang 522e41f4b71Sopenharmony_ci 523e41f4b71Sopenharmony_ci**返回值:** 524e41f4b71Sopenharmony_ci 525e41f4b71Sopenharmony_ci| 类型 | 说明 | 526e41f4b71Sopenharmony_ci| ----------- | ----------------------------------- | 527e41f4b71Sopenharmony_ci| string[] | 返回此URI查询部分中所有不重复键。 | 528e41f4b71Sopenharmony_ci 529e41f4b71Sopenharmony_ci**示例:** 530e41f4b71Sopenharmony_ci 531e41f4b71Sopenharmony_ci```ts 532e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("https://www.test.com?param1=value1¶m2=value2"); 533e41f4b71Sopenharmony_ciconst paramNames = uriInstance.getQueryNames(); 534e41f4b71Sopenharmony_ciconsole.info(Array.from(paramNames).toString()); // param1,param2 535e41f4b71Sopenharmony_ci``` 536e41f4b71Sopenharmony_ci 537e41f4b71Sopenharmony_ci### getQueryValues<sup>12+</sup> 538e41f4b71Sopenharmony_ci 539e41f4b71Sopenharmony_cigetQueryValues(key:string): string[] 540e41f4b71Sopenharmony_ci 541e41f4b71Sopenharmony_ci获取此URI中查询参数的所有指定键对应值的集合。若查询参数中存在已编码过的内容,需将对应Key进行解码后获取Value。 542e41f4b71Sopenharmony_ci 543e41f4b71Sopenharmony_ci查询参数是出现在问号“?”之后的部分,它们由键值对组成,键和值之间用等号“=”连接,键值对之间使用与号“&”分隔。 544e41f4b71Sopenharmony_ci 545e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。 546e41f4b71Sopenharmony_ci 547e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang 548e41f4b71Sopenharmony_ci 549e41f4b71Sopenharmony_ci**参数:** 550e41f4b71Sopenharmony_ci 551e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 552e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ----------------------- | 553e41f4b71Sopenharmony_ci| key | string | 是 | 指定键的名称。 | 554e41f4b71Sopenharmony_ci 555e41f4b71Sopenharmony_ci**返回值:** 556e41f4b71Sopenharmony_ci 557e41f4b71Sopenharmony_ci| 类型 | 说明 | 558e41f4b71Sopenharmony_ci| -------- | ----------------------------------- | 559e41f4b71Sopenharmony_ci| string[] | 返回此URI中查询参数内所有指定键对应值的集合,若没有找到则返回一个空字符串数组[]。 | 560e41f4b71Sopenharmony_ci 561e41f4b71Sopenharmony_ci**错误码:** 562e41f4b71Sopenharmony_ci 563e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 564e41f4b71Sopenharmony_ci 565e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 566e41f4b71Sopenharmony_ci| -------- | -------- | 567e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 568e41f4b71Sopenharmony_ci 569e41f4b71Sopenharmony_ci**示例:** 570e41f4b71Sopenharmony_ci 571e41f4b71Sopenharmony_ci```ts 572e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("https://www.test.com/search?query=name&query=my"); 573e41f4b71Sopenharmony_ciconsole.info(uriInstance.getQueryValues("query").toString()); // name,my 574e41f4b71Sopenharmony_ciconsole.info(JSON.stringify(uriInstance.getQueryValues("abc"))); // [] 575e41f4b71Sopenharmony_ci``` 576e41f4b71Sopenharmony_ci 577e41f4b71Sopenharmony_ci### getBooleanQueryValue<sup>12+</sup> 578e41f4b71Sopenharmony_ci 579e41f4b71Sopenharmony_cigetBooleanQueryValue(key:string,defaultValue:boolean): boolean 580e41f4b71Sopenharmony_ci 581e41f4b71Sopenharmony_ci从URI查询参数中获取布尔类型的参数值。 582e41f4b71Sopenharmony_ci 583e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。 584e41f4b71Sopenharmony_ci 585e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang 586e41f4b71Sopenharmony_ci 587e41f4b71Sopenharmony_ci**参数:** 588e41f4b71Sopenharmony_ci 589e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 590e41f4b71Sopenharmony_ci| ------------ | ------- | ---- | ------------------------------------- | 591e41f4b71Sopenharmony_ci| key | string | 是 | 要获取的查询参数的名称。 | 592e41f4b71Sopenharmony_ci| defaultValue | boolean | 是 | 返回的默认值。 | 593e41f4b71Sopenharmony_ci 594e41f4b71Sopenharmony_ci**返回值:** 595e41f4b71Sopenharmony_ci 596e41f4b71Sopenharmony_ci| 类型 | 说明 | 597e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------------------------------- | 598e41f4b71Sopenharmony_ci| boolean | 如果指定的查询参数不存在,则返回默认值;查询参数对应第一个值为“false”或者“0”返回false,否则返回true。 | 599e41f4b71Sopenharmony_ci 600e41f4b71Sopenharmony_ci**错误码:** 601e41f4b71Sopenharmony_ci 602e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 603e41f4b71Sopenharmony_ci 604e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 605e41f4b71Sopenharmony_ci| -------- | -------- | 606e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 607e41f4b71Sopenharmony_ci 608e41f4b71Sopenharmony_ci**示例:** 609e41f4b71Sopenharmony_ci 610e41f4b71Sopenharmony_ci```ts 611e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("https://www.test.com/search?active=true"); 612e41f4b71Sopenharmony_ciconsole.info(`${uriInstance.getBooleanQueryValue("active", false)}`); // true 613e41f4b71Sopenharmony_ciconst uriInstance1 = new uri.URI("https://www.test.com/search"); 614e41f4b71Sopenharmony_ciconsole.info(`${uriInstance1.getBooleanQueryValue("active", false)}`); // false 615e41f4b71Sopenharmony_ciconst uriInstance2 = new uri.URI("https://www.test.com/search?active=aa&active=false"); 616e41f4b71Sopenharmony_ciconsole.info(`${uriInstance2.getBooleanQueryValue("active", false)}`); // true 617e41f4b71Sopenharmony_ciconst uriInstance3 = new uri.URI("https://www.test.com/search?active=0"); 618e41f4b71Sopenharmony_ciconsole.info(`${uriInstance3.getBooleanQueryValue("active", true)}`); // false 619e41f4b71Sopenharmony_ci``` 620e41f4b71Sopenharmony_ci 621e41f4b71Sopenharmony_ci### clearQuery<sup>12+</sup> 622e41f4b71Sopenharmony_ci 623e41f4b71Sopenharmony_ciclearQuery(): URI 624e41f4b71Sopenharmony_ci 625e41f4b71Sopenharmony_ci清除URI路径查询部分,并创建一个新的URI,同时保持原有URI对象不变。 626e41f4b71Sopenharmony_ci 627e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。 628e41f4b71Sopenharmony_ci 629e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang 630e41f4b71Sopenharmony_ci 631e41f4b71Sopenharmony_ci**返回值:** 632e41f4b71Sopenharmony_ci 633e41f4b71Sopenharmony_ci| 类型 | 说明 | 634e41f4b71Sopenharmony_ci| ---- | ------------------------------------- | 635e41f4b71Sopenharmony_ci| [URI](#uri) | 返回一个已被清除查询部分的URI对象。 | 636e41f4b71Sopenharmony_ci 637e41f4b71Sopenharmony_ci**示例:** 638e41f4b71Sopenharmony_ci 639e41f4b71Sopenharmony_ci```ts 640e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("https://www.test.com?param1=value1"); 641e41f4b71Sopenharmony_ciconsole.info(uriInstance.clearQuery().toString()); // https://www.test.com 642e41f4b71Sopenharmony_ci``` 643e41f4b71Sopenharmony_ci 644e41f4b71Sopenharmony_ci### getLastSegment<sup>12+</sup> 645e41f4b71Sopenharmony_ci 646e41f4b71Sopenharmony_cigetLastSegment(): string 647e41f4b71Sopenharmony_ci 648e41f4b71Sopenharmony_ci获取此URI路径的最后一个段。每个段代表路径中的一个部分,通常通过“/”来进行分隔。对于以斜杠结尾的或者没有路径的不代表段。 649e41f4b71Sopenharmony_ci 650e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。 651e41f4b71Sopenharmony_ci 652e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang 653e41f4b71Sopenharmony_ci 654e41f4b71Sopenharmony_ci**返回值:** 655e41f4b71Sopenharmony_ci 656e41f4b71Sopenharmony_ci| 类型 | 说明 | 657e41f4b71Sopenharmony_ci| ---- | ----------------------------- | 658e41f4b71Sopenharmony_ci| string | 返回此URI路径中的最后一个段。 | 659e41f4b71Sopenharmony_ci 660e41f4b71Sopenharmony_ci**示例:** 661e41f4b71Sopenharmony_ci 662e41f4b71Sopenharmony_ci```ts 663e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("content://com.test.provider/files/image.jpg"); 664e41f4b71Sopenharmony_ciconsole.info(uriInstance.getLastSegment()); // image.jpg 665e41f4b71Sopenharmony_ci``` 666e41f4b71Sopenharmony_ci 667e41f4b71Sopenharmony_ci### getSegment<sup>12+</sup> 668e41f4b71Sopenharmony_ci 669e41f4b71Sopenharmony_cigetSegment(): string[] 670e41f4b71Sopenharmony_ci 671e41f4b71Sopenharmony_ci获取此URI路径中的所有段。 672e41f4b71Sopenharmony_ci 673e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。 674e41f4b71Sopenharmony_ci 675e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang 676e41f4b71Sopenharmony_ci 677e41f4b71Sopenharmony_ci**返回值:** 678e41f4b71Sopenharmony_ci 679e41f4b71Sopenharmony_ci| 类型 | 说明 | 680e41f4b71Sopenharmony_ci| -------- | --------------------------- | 681e41f4b71Sopenharmony_ci| string[] | 返回此URI路径中的所有段。 | 682e41f4b71Sopenharmony_ci 683e41f4b71Sopenharmony_ci**示例:** 684e41f4b71Sopenharmony_ci 685e41f4b71Sopenharmony_ci```ts 686e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI("http://www.test.com/path/to/image.jpg"); 687e41f4b71Sopenharmony_ciconsole.info(uriInstance.getSegment().toString()); // path,to,image.jpg 688e41f4b71Sopenharmony_ci``` 689e41f4b71Sopenharmony_ci 690e41f4b71Sopenharmony_ci### createFromParts<sup>12+</sup> 691e41f4b71Sopenharmony_ci 692e41f4b71Sopenharmony_cicreateFromParts(scheme: string, ssp: string, fragment: string): URI 693e41f4b71Sopenharmony_ci 694e41f4b71Sopenharmony_ci根据提供的协议、方案特定部分以及片段部分创建一个新的URI。 695e41f4b71Sopenharmony_ci 696e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。 697e41f4b71Sopenharmony_ci 698e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang 699e41f4b71Sopenharmony_ci 700e41f4b71Sopenharmony_ci**参数:** 701e41f4b71Sopenharmony_ci 702e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 703e41f4b71Sopenharmony_ci| -------- | ------ | ---- | ------------------------------- | 704e41f4b71Sopenharmony_ci| scheme | string | 是 | 此URI协议部分。 | 705e41f4b71Sopenharmony_ci| ssp | string | 是 | 此URI的方案特定部分。 | 706e41f4b71Sopenharmony_ci| fragment | string | 是 | 此URI的片段部分。片段部分是URI中的一个特定部分,即“#”符号后面的部分。 | 707e41f4b71Sopenharmony_ci 708e41f4b71Sopenharmony_ci**返回值:** 709e41f4b71Sopenharmony_ci 710e41f4b71Sopenharmony_ci| 类型 | 说明 | 711e41f4b71Sopenharmony_ci| ---- | ------------------------------------------------- | 712e41f4b71Sopenharmony_ci| [URI](#uri) | 返回创建的URI对象。 | 713e41f4b71Sopenharmony_ci 714e41f4b71Sopenharmony_ci**错误码:** 715e41f4b71Sopenharmony_ci 716e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 717e41f4b71Sopenharmony_ci 718e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 719e41f4b71Sopenharmony_ci| -------- | -------- | 720e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 721e41f4b71Sopenharmony_ci 722e41f4b71Sopenharmony_ci**示例:** 723e41f4b71Sopenharmony_ci 724e41f4b71Sopenharmony_ci```ts 725e41f4b71Sopenharmony_ciconst uriInstance = uri.URI.createFromParts("mailto", "no body", "top"); 726e41f4b71Sopenharmony_ciconsole.info(uriInstance.toString()); // mailto:no%20body#top 727e41f4b71Sopenharmony_ci``` 728e41f4b71Sopenharmony_ci 729e41f4b71Sopenharmony_ci### equals<sup>(deprecated)</sup> 730e41f4b71Sopenharmony_ci 731e41f4b71Sopenharmony_ciequals(other: URI): boolean 732e41f4b71Sopenharmony_ci 733e41f4b71Sopenharmony_ci判断此URI是否与其他URI对象相等。 734e41f4b71Sopenharmony_ci 735e41f4b71Sopenharmony_ci> **说明:** 736e41f4b71Sopenharmony_ci> 737e41f4b71Sopenharmony_ci> 从API version 8开始支持,从API version 9开始废弃,建议使用[equalsTo<sup>9+</sup>](#equalsto9)替代。 738e41f4b71Sopenharmony_ci 739e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Utils.Lang 740e41f4b71Sopenharmony_ci 741e41f4b71Sopenharmony_ci**参数:** 742e41f4b71Sopenharmony_ci 743e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 744e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 745e41f4b71Sopenharmony_ci| other | [URI](#uri) | 是 | 需要比较的URI对象。 | 746e41f4b71Sopenharmony_ci 747e41f4b71Sopenharmony_ci**返回值:** 748e41f4b71Sopenharmony_ci 749e41f4b71Sopenharmony_ci| 类型 | 说明 | 750e41f4b71Sopenharmony_ci| -------- | -------- | 751e41f4b71Sopenharmony_ci| boolean | 返回true表示相等,否则返回false。 | 752e41f4b71Sopenharmony_ci 753e41f4b71Sopenharmony_ci**示例:** 754e41f4b71Sopenharmony_ci 755e41f4b71Sopenharmony_ci```ts 756e41f4b71Sopenharmony_ciconst uriInstance = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da'); 757e41f4b71Sopenharmony_ciconst uriInstance1 = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da'); 758e41f4b71Sopenharmony_ciuriInstance.equals(uriInstance1); // true 759e41f4b71Sopenharmony_ci```