1# Overview of Starting a Specified Application 2 3This section describes how to start a specified application in linking mode. 4 5> **NOTE** 6> 7> Since API version 12, it is not recommended that third-party applications start other applications by specifying an ability (implicit Want mode). For details about how to switch from the implicit Want mode to the [linking mode](app-startup-overview.md#application-links), see [Switching from Explicit Want Redirection to Linking Redirection](uiability-startup-adjust.md). 8 9 10## Application Links 11 12An application link is a URL that can direct users to a specific location in an application or a web page. For details about the link format and field meanings, see [Application Link Description](app-uri-config.md). The common format is as follows: 13 14``` 15scheme://host[:port]/path 16``` 17 18 19## Working Principles 20 211. The target application registers its URL in the configuration file and provides the URL for external systems. 222. The caller application passes in information such as the URL of the target application to the redirection APIs. 233. After receiving the information such as the URL, the system searches for the matching application and redirects to the target application. 24 25 26## Linking Category 27 28There are two types of linking: Deep Linking and App Linking, which vary in the scheme configuration and verification mechanism. 29 30- Deep Linking enables users to jump to a specific page of an application through a link. It allows developers to define schemes in any form. The target applications are easy to be spoofed since there is no domain name verification. 31 32- App Linking stipulates that the scheme must be https and adopts domain name verification to further filter the target application. 33 34 35Compared with Deep Linking, App Linking has higher security, reliability, and user experience. Therefore, App Linking is recommended. 36 37| Item| App Linking (Recommended)| Deep Linking | 38| -------- | -------- |-------- | 39| Implementation| The target application must declare its link in the **module.json5** file. It must also register a domain name with the system and pass domain name authentication.| The target application must declare its link in the **module.json5** file.| 40| Format| The value of **scheme** must be **https**.| **scheme** can be customized. Generally, it cannot be **https**, **http**, or **file**. Otherwise, the default system browser is started.| 41| Capable of sharing or directly accessible on web pages| Yes| No. The function must be called in the code.| 42| Able to directly start the target application| Yes| Yes. However, this mode is not recommended due to spoofing risks.| 43 44Both Deep Linking and App Linking can be implemented using [openLink](../reference/apis-ability-kit/js-apis-inner-application-uiAbilityContext.md#uiabilitycontextopenlink12). The redirection effect under different conditions is as follows: 45 46> **NOTE** 47> 48> The **appLinkingOnly** field in the API specifies whether to start the UIAbility in App Linking mode. The default value is **false**. Generally, **appLinkingOnly** is set to **true** for browser applications. 49 50 51| Scenario| App Linking (Recommended)| Deep Linking | 52| -------- | -------- |-------- | 53| The value of **appLinkingOnly** is **false** and the target application is installed.| Directly redirect to and start the target application.| Redirect to the target application. (If there are multiple applications that meet the conditions, a dialog box for selecting an application is displayed.)| 54| The value of **appLinkingOnly** is **false** and the target application is not installed.| Redirect to the default browser to open a web page.|A failure message is returned, no redirection is performed, and the application is responsible for handling the request. Currently, a dialog box is displayed, indicating that the link cannot be opened.| 55| The value of **appLinkingOnly** is **true** and the target application is installed.| Directly redirect to and start the target application.|A failure message is returned, no redirection is performed, and the application is responsible for handling the request.| 56| The value of **appLinkingOnly** is **true** and the target application is not installed.| A failure message is returned, no redirection is performed, and the application is responsible for handling the request.| A failure message is returned, no redirection is performed, and the application is responsible for handling the request.| 57