1e41f4b71Sopenharmony_ci# Redirection Rules 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci 4e41f4b71Sopenharmony_ciGenerally, UI redirection within an application is triggered by users. However, an application can call **startAbility()** to implement UI redirection. 5e41f4b71Sopenharmony_ci 6e41f4b71Sopenharmony_ci 7e41f4b71Sopenharmony_ciThe PageAbility has a UI. It can use **startAbility()** to start an ability that has a UI and is visible to users. 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ciThe **visible** field under **abilities** in the **config.json** file specifies whether an ability can be started by other application components. 11e41f4b71Sopenharmony_ci 12e41f4b71Sopenharmony_ci**Table 1** Description of visible 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci| Name| Description| Initial Value Allowed| 15e41f4b71Sopenharmony_ci| -------- | -------- | -------- | 16e41f4b71Sopenharmony_ci| visible | Whether the ability can be called by other applications.<br>**true**: The ability can be called by any application.<br>**false**: The ability can be called only by other components of the same application.| Yes (initial value: **false**)| 17e41f4b71Sopenharmony_ci 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ciTo enable an ability to be called by any application, configure the **config.json** file as follows: 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci```json 22e41f4b71Sopenharmony_ci{ 23e41f4b71Sopenharmony_ci "module": { 24e41f4b71Sopenharmony_ci ... 25e41f4b71Sopenharmony_ci "abilities": [ 26e41f4b71Sopenharmony_ci { 27e41f4b71Sopenharmony_ci "visible": "true", 28e41f4b71Sopenharmony_ci ... 29e41f4b71Sopenharmony_ci } 30e41f4b71Sopenharmony_ci ] 31e41f4b71Sopenharmony_ci } 32e41f4b71Sopenharmony_ci} 33e41f4b71Sopenharmony_ci``` 34e41f4b71Sopenharmony_ci 35e41f4b71Sopenharmony_ci 36e41f4b71Sopenharmony_ciIf the ability contains **skills**, you are advised to set **visible** to **true** so that the ability can be [implicitly started](explicit-implicit-want-mappings.md) by other applications. If this attribute is set to **false**, the system returns **PERMISSION_DENIED** when other applications attempt to start the ability. In this case, a system application can request the <!--Del-->[<!--DelEnd-->START_INVISIBLE_ABILITY<!--Del-->](../security/AccessToken/permissions-for-system-apps.md#ohospermissionstart_invisible_ability)<!--DelEnd--> permission to start the ability. Example abilities with **visible** set to **false** are the home screen, voice assistant, or search assistant. 37