本章节主要介绍拉起方应用如何通过指定应用类型、而非某个具体的应用,来实现应用跳转。通常有以下几种方式:
开发者可通过特定的业务类型如导航、金融、邮件等,调用startAbilityByType接口拉起对应的垂类应用选择框。
如果当前设备已安装应用中存在匹配的应用,选择框中将展示已接入的垂类应用,由用户选择打开指定应用以实现相应的意图。

如果当前设备已安装应用中没有匹配的应用,系统将自动弹窗提示用户没有相关应用(下图以导航类应用匹配失败为例)。无需开发者适配。

这种方式可以为调用方提供统一的安全、可信的目标方应用,同时降低调用方的接入成本。
UIAbilityContext.startAbilityByType和UIExtensionContentSession.startAbilityByType接口支持基于业务类型拉起垂类应用选择框。调用方通过指定业务类型即可拉起对应的垂类应用选择框。选择框上将展示已接入的垂类应用。
系统会根据调用方在startAbilityByType接口传入的type与wantParams.sceneType取值,按照如下映射关系,匹配到在module.json5配置文件中声明了对应linkFeature的目标应用。
| 支持的功能 | 调用方(startAbilityByType接口入参) | 目标方(配置文件linkFeature取值) |
|---|---|---|
| 路线规划功能 | - type:navigation - wantParams.sceneType:1 | RoutePlan |
| 导航功能 | - type:navigation - wantParams.sceneType:2 | Navigation |
| 位置搜索功能 | - type:navigation - wantParams.sceneType:3 | PlaceSearch |
| 地点详情功能 | - type:navigation - wantParams.sceneType:4 | DetailLocation |
| 转账汇款功能 | - type:finance - wantParams.sceneType:1 | Transfer |
| 信用卡还款功能 | - type:finance - wantParams.sceneType:2 | CreditCardRepayment |
| 撰写邮件功能 | - type:mail - wantParams.sceneType:1 | ComposeMail |
| 按航班号查询航班功能 | - type:flight - wantParams.sceneType:1 | QueryByFlightNo |
| 按起降地查询航班功能 | - type:flight - wantParams.sceneType:2 | QueryByLocation |
| 快递查询功能 | - type:express - wantParams.sceneType:1 | QueryExpress |