1# Application URI Description
2
3## Basic URI Format
4
5**uris** declared in **skills** of the **module.json5** file contains the following fields. Among them, **scheme** is mandatory. Other fields are valid only when **scheme** is configured.
6
7- **scheme**: scheme name, for example, **http**, **https**, **file**, and **ftp**. Custom values are also supported.
8- **host**: domain name or IP address, for example, developer.huawei.com or 127.0.0.1.
9- **port**: port number, for example, 80 in developer.huawei.com:80.
10- **path**: directory or file path on the DNS, for example, consumer in developer.huawei.com/consumer/.
11- **pathStartWith**: prefix of the directory or file path on the DNS. It is used for prefix matching.
12- **pathRegex**: regular expression of the directory or file path on the DNS. It is used for regular expression matching.
13- **linkFeature**: application's function type, such as file opening, sharing, and navigation. The value is a string with a maximum of 127 bytes.
14
15URIs can be expressed in different formats based on the available fields.
16
17The following formats are possible when **scheme**, the combination of **scheme** and **host**, or the combination of **scheme**, **host**, and **port** is configured:
18
19- `scheme://`
20- `scheme://host`
21- `scheme://host:port`    
22
23When **path**, **pathStartWith**, or **pathRegex** is configured, the formats are as follows. If more than one of these three fields are configured and any field is matched, the matching result is true.
24
25- **Full path expression**: scheme://host:port/path
26- **Prefix expression**: scheme://host:port/pathStartWith
27- **Regular expression**: scheme://host:port/pathRegex
28
29> **NOTE**
30> 
31> If multiple applications are configured with the same URLs, these applications will be matched during application redirection, and a dialog box will be displayed for uses to select. For better user experience, you can use the **path** field to distinguish the application to start. For example, use **https://www.example.com/path1** to start target application 1 and use **https://www.example.com/path2** to start target application 2.
32
33## Description of linkFeature
34
35The use of the **linkFeature** field enables an application to deliver a more user-friendly redirection experience. (The declaration of the **linkFeature** field must be reviewed by the application market before being released.) The use scenarios are as follows:
36
371. Identification of applications of the same type: When the caller starts a vertical application (for example, navigation applications), the system identifies the matched applications based on the **linkFeature** field and displays the applications on the vertical domain panel.
38
39    |Value|Description|
40    |---|---|
41    |AppStorageMgmt|Clears cache data in the application sandbox directory.|
42    |FileOpen|Opens a file.|
43    |Navigation|Provides navigation.|
44    |RoutePlan|Plans a route.|
45    |PlaceSerach|Searches a location.|
46
472. One-touch return: When a user switches from application A to application B, application B calls the [quick return API](../reference/apis-ability-kit/js-apis-inner-application-uiAbilityContext.md#uiabilitycontextbacktocallerabilitywithresult12) to return to application A. For example, if application A is redirected to the payment page of application B and application B has applied for the linkfeature of payment, the user can return to application A at one touch after finishing the payment in application B.
48
49    |Value|Description|
50    |---|---|
51    |Login|Common login and authorized login.|
52    |Pay|Payment and cashier.|
53    |Share|Sharing.|
54
55## Example
56
57
58The following uses the authorized login scenario as an example:
59
60```json
61"uris": [
62    {
63        "scheme": "https",
64        "host": "developer.huawei.com",
65        "path": "consumer",
66        "linkFeature": "Login"  
67    }
68]
69```
70