当前位置: 首页 > news >正文

uniapp打开导航软件并定位到目标位置的实现

/*** 打开导航* @param location 经纬度(例如:"117.214713,39.116884")* @param address 地址*/
export function mapNavigation(location, address) {const locationArr = location.split(',')const longitude = locationArr[0]const latitude = locationArr[1]let url = '' // app urllet webUrl = '' // web url 用来为用户未安装导航软件时打开浏览器所使用urlplus.nativeUI.actionSheet({ // 选择菜单title: '选择地图应用',cancel: '取消',buttons: [{title: '高德地图'}, {title: '百度地图'}] // 可选的地图类型}, (e) => {// 判断用户选择的地图switch (e.index) {// 下面是拼接url,不同系统以及不同地图都有不同的拼接字段case 1: // 打开高德地图if (plus.os.name == 'Android') { // 安卓url =`androidamap://viewMap?sourceApplication=appname&poiname=${address}&lat=${latitude}&lon=${longitude}&dev=0`} else { // 苹果url =`iosamap://viewMap?sourceApplication=applicationName&poiname=${address}&lat=${latitude}&lon=${longitude}&dev=0`}webUrl =`https://uri.amap.com/marker?position=${longitude},${latitude}&name=${address}&src=mypage&coordinate=gaode`breakcase 2: // 打开百度地图if (plus.os.name == 'Android') { // 安卓url =`baidumap://map/marker?location=${latitude},${longitude}&title=${address}&content=${address}&src=andr.baidu.openAPIdemo&coord_type=gcj02`} else { // 苹果url =`iosamap://map/marker?location=${latitude},${longitude}&title=${address}&content=${address}&src=ios.baidu.openAPIdemo&coord_type=gcj02`}webUrl =`http://api.map.baidu.com/marker?location=${latitude},${longitude}&title=${address}&content=${address}&output=html&src=webapp.baidu.openAPIdemo`break}// 如果选中if (url != '') {url = encodeURI(url)// 打开 app 导航plus.runtime.openURL(url, () => {// 毕竟用户可能没有安装app但一定安装的有浏览器// 如果失败则说明未安装 直接 打开网页版进行导航let chooseMap = ''if (e.index == 1) {chooseMap = '高德地图'} else if (e.index == 2) {chooseMap = '百度地图'} else {chooseMap = '腾讯地图'}uni.showModal({title: '提示',content: '检测到您本机暂未安装' + chooseMap + '应用,是否要选择使用浏览器打开?',confirmText: '确定',cancelText: '取消',showCancel: true,success: function(res) {if (res.confirm) {plus.runtime.openURL(webUrl)}}})})}})
}
http://www.xdnf.cn/news/1168813.html

相关文章:

  • 当直播间告别“真人时代”:AI数字人重构商业新秩序
  • uni-calendar自定义签到打卡颜色
  • Apache Ignite 中的 SQL 模式(Schema)管理机制
  • 使用python中的pymysql库,并且转化为数组元组数据
  • adb的使用
  • Leetcode—692. 前K个高频单词【中等】(桶排序)
  • Linux的磁盘存储管理实操——(下一)——标准分区扩容
  • Ajax第一天
  • GoLand 部署第一个项目
  • 【Python】常见模块及其用法
  • 认识自我的机器人:麻省理工学院基于视觉的系统让机器了解自身机体
  • 【LeetCode 热题 100】46. 全排列——回溯
  • Windows 编程辅助技能:转到文档
  • Docker实战系列:使用Docker部署AI SSH客户端工具IntelliSSH
  • 2025年远程桌面软件深度评测:ToDesk、向日葵、TeamViewer全方位对比分析
  • Golang避免主协程退出方案
  • 期权分红怎么分的?
  • Thinkphp8使用Jwt生成与验证Token
  • Spring之【Bean工厂后置处理器】
  • MybatisPlus入门指南
  • LeetCode 658.找到K个最接近的元素
  • 豪鹏科技锚定 “AI + 固态” 赛道:从电池制造商到核心能源方案引领者的战略跃迁
  • leetcode 1695. 删除子数组的最大得分 中等
  • 浏览器解码顺序xss
  • 低成本、高泛化能力的无人机自主飞行!VLM-Nav:基于单目视觉与视觉语言模型的无地图无人机导航
  • excle中匹配加密手机号(同sheet中)
  • Springboot + MyBatis-Plus + PageHelper 分页性能混合优化方案
  • 解决栅格数据裁剪矢量数据问题两种方法,ArcGIS解决与PYTHON解决
  • 物联网_TDengine_EMQX_性能测试
  • 【Android】xml和Java两种方式实现发送邮件页面