鸿蒙开发:通过startAbilityByType拉起垂类应用
通过startAbilityByType拉起垂类应用
使用场景
开发者可通过特定的业务类型如导航、金融等,调用startAbilityByType接口拉起对应的垂域面板,该面板将展示目标方接入的垂域应用,由用户选择打开指定应用以实现相应的垂类意图。垂域面板为调用方提供统一的安全、可信的目标方应用,同时降低调用方的接入成本。

约束限制
设备限制 HarmonyOS NEXT Developer Preview0及以上版本的设备
接口说明
接口startAbilityByType11+ 是[UIAbilityContext]和[UIExtensionContentSession]提供的支持基于垂域业务类型拉起垂域面板,调用方通过指定特定的垂域业务类型即可拉起对应的垂域面板,在垂域面板上将展示目标方接入的垂域应用。
type为navigation导航对应的wantParam:
| 属性名称 | 含义 | 数据类型 | 是否缺省 |
|---|---|---|---|
| destinationLatitude | 终点纬度GCJ-02 | number | sceneType=1或2时不可缺省 |
| destinationLongitude | 终点经度GCJ-02 | number | sceneType=1或2时不可缺省 |
| sceneType | 意图取值 :1:路线规划 2:导航 3: 地点搜索 | number | 可缺省,缺省时默认为1 |
| destinationName | 终点名称 | string | sceneType=3时不可缺省 |
| originName | 起点名称(路线规划场景有效) | string | 可缺省 |
| originLatitude | 起点纬度GCJ-02(路线规划场景有效) | number | 可缺省 |
| originLongitude | 起点经度GCJ-02(路线规划场景有效) | number | 可缺省 |
| vehicleType | 交通出行工具:0:驾车 1:步行 2:骑行 3:公交(路线规划场景有效) | number | 可缺省,缺省时由应用自行处理 |
接入步骤
调用方接入步骤
-
导入ohos.app.ability.common模块。
import common from '@ohos.app.ability.common'; -
构造接口参数并调用startAbilityByType接口。
示例
import common from '@ohos.app.ability.common';
let context = getContext(this) as common.UIAbilityContext;
let wantParam: Record<string, Object> = {'sceneType':1,'destinationLatitude':32.060844,'destinationLongitude':118.78315,'destinationName':'xx市xx路xx号','originName':'xx市xx公园','originLatitude':31.060844,'originLongitude':120.78315,'vehicleType':0
};
let abilityStartCallback: common.AbilityStartCallback = {onError: (code: number, name: string, message: string) => {console.log(`code:` + code + `name:` + name + `message:` + message);}
}
context.startAbilityByType("navigation", wantParam, abilityStartCallback, (err) => {if (err) {console.error(`startAbilityByType fail, err: ${JSON.stringify(err)}`);} else {console.log(`success`);}
});
效果示例图:

目标方接入步骤
-
导入ohos.app.ability.UIAbility模块。
import UIAbility from '@ohos.app.ability.UIAbility'; -
在module.json5中新增[linkFeature]属性并设置声明当前应用支持的特性功能,从而系统可以从设备已安装应用中找到当前支持该特性的应用。
配置示例:
{ "abilities": [{"skills": [{"uris": [{"scheme": "maps", // 这里仅示意,应用需确保这里声明的的uri能被外部正常拉起"host": "navigation","path": "","linkFeature": "navigation" // 声明应用支持导航功能},{"scheme": "maps", // 这里仅示意,应用需确保这里声明的的uri能被外部正常拉起"host": "routePlan","path": "","linkFeature": "routePlan" // 声明应用支持路线规划功能},{"scheme": "maps", // 这里仅示意,应用需确保这里声明的的uri能被外部正常拉起"host": "search","path": "","linkFeature": "textSearch" // 声明应用支持位置搜索功能}]}]} ] } -
解析参数并做对应处理。
UIAbility::onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void在参数want.parameters中会携带Caller方传入的参数(与调用方传入的有些差异),如下表所示:
属性名称 含义 数据类型 是否缺省 destinationLatitude 终点纬度GCJ-02 number sceneType=1或2时不可缺省 destinationLongitude 终点经度GCJ-02 number sceneType=1或2时不可缺省 destinationName 终点名称 string sceneType=3时不可缺省 originName 起点名称 string 可缺省,存在时可用于展示路线规划页面 originLatitude 起点纬度GCJ-02 number 可缺省,存在时可用于展示路线规划页面 originLongitude 起点经度GCJ-02 number 可缺省,存在时可用于展示路线规划页面 vehicleType 交通出行工具:0:驾车 1:步行 2:骑行 3:公交(路线规划场景有效) number 可缺省,缺省时由应用自行处理 应用可根据[linkFeature]中定义的特性功能,比如路线规划和导航结合接收到的参数开发不同的样式页面。
示例:
import AbilityConstant from '@ohos.app.ability.AbilityConstant';
import hilog from '@ohos.hilog';
import UIAbility from '@ohos.app.ability.UIAbility';
import Want from '@ohos.app.ability.Want';
import window from '@ohos.window';let destinationLatitude:number;
let destinationLongitude:number;
let originLatitude:number | undefined;
let originLongitude:number | undefined;export default class EntryAbility extends UIAbility {onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');destinationLatitude = want.parameters?.destinationLatitude as number;destinationLongitude = want.parameters?.destinationLongitude as number;originLatitude = want.parameters?.originLatitude as number | undefined;originLongitude = want.parameters?.originLongitude as number | undefined;}onWindowStageCreate(windowStage: window.WindowStage) {hilog.info(0x0000, 'testTag', '%{public}s', `Ability onWindowStageCreate: ${JSON.stringify(this.context)}`);const storage: LocalStorage = new LocalStorage({"destinationLatitude": destinationLatitude,"destinationLongitude": destinationLongitude,"originLatitude": originLatitude,"originLongitude": originLongitude} as Record<string, object>);if(originLatitude !== undefined && originLongitude !== undefined) {windowStage.loadContent('pages/IndexForNavigation', storage);} else {windowStage.loadContent('pages/IndexForRoutePlan', storage);}}
}
相关文章:
鸿蒙开发:通过startAbilityByType拉起垂类应用
通过startAbilityByType拉起垂类应用 使用场景 开发者可通过特定的业务类型如导航、金融等,调用startAbilityByType接口拉起对应的垂域面板,该面板将展示目标方接入的垂域应用,由用户选择打开指定应用以实现相应的垂类意图。垂域面板为调用…...
docker 更换镜像源
打开对应的配置文件 vi /etc/docker/daemon.json 输入文件内容入下 {"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8…...
Springboot(若依)国际化配置接口访问后返回????????
最近使用若依的框架进行二次开发,配置了国际化,application.yml配置英文时没问题,但配置中文basename: i18n/messages_zh_CN,访问接口就直接返回的???,如图: 于是检查了I18nConfig文件,没配错…...
java1
在继承中,创建子类对象,访问成员方法的规则: 创建的对象是谁,就优先用谁,没有再向上找 注意:无论是成员变量还是成员方法, 如果没有都是向上找父类,不会向下找子类 继承的特点&#…...
pytest中一个场景测试的demo
注意点1: allure.severity 是一个装饰器,用于设置测试用例的严重性级别。 allure.severity_level.CRITICAL 是Allure提供的严重性级别之一,表示这个测试用例极为重要。allure.severity_level.BLOCKER:阻塞级别的问题,…...
windows下安装IntelliJIDEA
windows下安装IntelliJIDEA 步骤1:下载IntelliJ IDEA 打开浏览器并访问IntelliJ IDEA下载页面. https://www.jetbrains.com/idea/download/选择合适的版本: Ultimate:付费版本,包含更多功能,适合专业开发。Community…...
string经典题目(C++)
文章目录 前言一、最长回文子串1.题目解析2.算法原理3.代码编写 二、字符串相乘1.题目解析2.算法原理3.代码编写 总结 前言 一、最长回文子串 1.题目解析 给你一个字符串 s,找到 s 中最长的回文子串。 示例 1: 输入:s “babad” 输出&am…...
三篇卫星切换的论文
目录 一、Energy-Aware Satellite Handover based on Deep Reinforcement Learning 1、题目翻译 2、来源 3、内容 二、A Reliable Handover Strategy with Second Satellite Selection in LEO Satellite Networks 1、题目翻译 2、来源 3、内容 三、User Grouping-Based…...
VUE之重定向redirect
VUE之路由和重定向redirect 这个小知识点是在学习做项目的时候遇到的一个问题,借鉴了一个他人的项目,是一个酒店管理系统,拿到源码之后导到我的vscode里。 参考链接 导的过程比较顺利,正常安装,加依赖,没有…...
服务器时区与数据库时区不一致导致时间bug记录
1、背景 一个活动,需要按照自然月刷新,每月一期,以活动开始当月作为第一期,每期可配置不同数据。问题出现在:活动开始时间为本月,但是查询用户数据发现当前为第二期,反复查看代码,确…...
华为鸿蒙HarmonyOS应用开发者高级认证题库
判断题 1、云函数打包完成后,需要到AppGallery Connect创建对应函数的触发器才可以在端侧中调用 错 2、在column和Row容器组件中,aligntems用于设置子组件在主轴方向上的对齐格式,justifycontent用于设置子组件在交叉轴方向上的对齐格式 错…...
细说MCU串口函数及使用printf函数实现串口发送数据的方法
目录 1、硬件及工程 2、串口相关的库函数 (1)串口中断服务函数: (2)串口接收回调函数: (3)串口接收中断配置函数: (4)非中断发送ÿ…...
PBox iOS端的应用隐藏、图片视频加密软件
哈喽,大家下午好!相信大家的手机中一定存在很多的私密内容,比如软件、照片、视频或者文档文件,很多都是不方便让外人看到的,此时就需要一款隐藏工具,市面上这类软件大部分都是收费的,应大家的需…...
【QT5】<总览五> QT多线程、TCP/UDP
文章目录 前言 一、QThread多线程 二、QT中的TCP编程 1. TCP简介 2. 服务端程序编写 3. 客户端程序编写 4. 服务端与客户端测试 三、QT中的UDP编程 1. UDP简介 2. UDP单播与广播程序 前言 承接【QT5】<总览四> QT常见绘图、图表及动画。若存在…...
fastadmin/thinkPHPQueue消息队列详细教程
thinkphp-queue 是thinkphp 官方提供的一个消息队列服务,它支持消息队列的一些基本特性: 消息的发布,获取,执行,删除,重发,失败处理,延迟执行,超时控制等队列的多队列, 内存限制 ,启动,停止,守护等消息队列可降级为同步执行1、通过composer安装thinkPHP消息队列 …...
社区新标准发布!龙蜥社区标准化 SIG MeetUp 圆满结束
5 月 31 日,「龙蜥社区“走进系列”」第 9 期之走进阿里云于北京圆满结束。来自阿里云、浪潮信息、红旗软件、中兴通讯|中兴新支点、中科曙光、中科方德、统信软件、麒麟软件、万里红、普华基础软件、飞腾信息、凝思、申威、新华三等公司的 30 余位专家出席会议。会…...
快速开始一个go程序(极简-快速入门)
一、 实验介绍 1.1 实验简介 为了能更高效地使用语言进行编码,Go 语言有自己的哲学和编程习惯。Go 语言的设计者们从编程效率出发设计了这门语言,但又不会丢掉访问底层程序结构的能力。设计者们通过一组最少的关键字、内置的方法和语法,最终…...
HTTPS缺失?如何轻松解决IP地址访问时的“不安全”警告
一、问题现象 如果访问网站时出现以下任何一种情况,则说明该网站需要立即整改: 1.浏览器地址栏那里出现“不安全”字样; 2.小锁标志被红叉()、斜线(\)等标志为不可用;…...
验证码识别接口、多种样式验证码识别接口、中英文验证码识别接口
验证码识别接口、多种样式验证码识别接口、中英文验证码识别接口 本文提供一个基于OCR和机器学习的验证码识别接口,能够识别较复杂的中文、英文验证码,在OCR的基础上针对验证码进行算法优化。本接口是收费的(最低0.5分1次调用,试…...
测试bert_base不同并行方式下的推理性能
测试bert_base不同并行方式下的推理性能 一.测试数据二.测试步骤1.生成bert配置文件2.安装依赖3.deepspeed 4卡tp并行4.FSDP 4卡并行5.手动将权值平均拆到4张卡,单进程多卡推理6.手动切分成4份,基于NCCL实现pipeline并行 本文测试了bert_base模型在不同并行方式下的推理性能 约…...
Qwen模型 LeetCode 2577. 在网格图中访问一个格子的最少时间 Java实现
哎呀,这道题我可太熟啦!2577. 在网格图中访问一个格子的最少时间,听起来就很有挑战性对不对?让我跟你聊聊我的解法思路~这其实是个典型的最短路径问题呢。想象一下我们站在一个神奇的网格世界里,每个格子都有自己的&qu…...
基于SpringBoot的运动会报名与成绩录入系统毕业设计
博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在构建一个基于Spring Boot与Vue框架的运动会报名与成绩录入系统以解决传统体育赛事管理中存在的信息处理效率低下数据准确性不足以及资源分配不科学等问…...
别再乱码了!一文搞懂Windows记事本里ANSI、GBK、SJIS这些编码到底怎么选
告别乱码!Windows记事本编码选择终极指南 为什么你的文件总在别人电脑上显示乱码? 每次用Windows记事本保存文件时,面对"ANSI"、"Unicode"、"UTF-8"这些选项,你是否感到困惑?明明在自己…...
别再为医学影像格式发愁了!3D Slicer 5.x 保姆级数据导入与格式转换指南
医学影像处理实战:3D Slicer 5.x全格式兼容指南与高效工作流医学影像研究的第一步往往就卡在数据导入环节——当你从医院PACS系统拿到DICOM序列,从合作方收到NRRD压缩包,或是下载公开数据集的NIFTI文件时,3D Slicer中那些灰色的&q…...
DVWA通关教程2
本博客所有网络安全相关教程、漏洞原理、渗透实操、攻防技术等内容,仅用于合法安全学习、白帽技术交流、企业授权安全测试。 所有技术严禁用于未授权探测、非法入侵、数据窃取、网络攻击等任何违反《中华人民共和国网络安全法》的违法行为。 任何个人利用本文内容实…...
LeetCode 930:和相同的二元子数组 | 前缀和与哈希表
LeetCode 930:和相同的二元子数组 | 前缀和与哈希表 引言 和相同的二元子数组(Binary Subarrays With Sum)是 LeetCode 第 930 题,难度为 Medium。题目要求在二元数组(元素只有 0 和 1)中找出子数组和等于 …...
SQL 数据库从免费到付费选型实战:支撑真实规模产品的能力分析与选择指南
引言:为什么 SQL 数据库选型如此重要? 在当今数据驱动的时代,数据库是任何数字产品的核心基础设施。无论是初创公司的 MVP(最小可行产品),还是日活百万的成熟应用,数据库的选择直接影响着产品的性能、成本、可扩展性和开发效率。 对于技术决策者而言,面对琳琅满目的 …...
2026最新Burp Suite安装配置指南:Java环境、系统兼容性与代理调试
1. 为什么2026年还在手把手教Burp Suite安装?这不是过时的工具,而是安全测试的“瑞士军刀”很多人看到“Burp Suite安装教程”第一反应是:这玩意儿不是十年前就烂大街了吗?配个Java环境、下个JAR包、双击运行——三步搞定…...
基于首届中国互联网数据挖掘竞赛数据集的行为相似网络分析
在互联网行为分析中,“社交网络分析”不一定只能依赖好友、关注、私信或转发关系。很多时候,数据里并没有显式的社交边,但用户的网页访问、应用使用、停留时长和活跃节奏,本身就能反映出相似的兴趣圈层。 本项目中的“社交网络分析…...
HS2-HF Patch终极指南:一键解锁完整汉化与去码体验
HS2-HF Patch终极指南:一键解锁完整汉化与去码体验 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 还在为《Honey Select 2》的语言障碍和功能限制而…...
