当前位置: 首页 > 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.dtcms.com/a/292530.html

相关文章:

  • k8s:离线部署tomcatV11.0.9,报Cannot find /opt/bitnami/tomcat/bin/setclasspath.sh
  • docker pull 用法
  • WebAssembly浏览器指纹识别技术——实验评估与应用展望(下篇)
  • el-input 动态获焦
  • 11.【C语言学习笔记】指针(三)(回调函数、qsort排序函数、sizeof关键字和strlen函数)
  • 2025年7月中科院一区-向光生长优化算法Phototropic growth algorithm-附Matlab免费代码
  • 【文献笔记】From words to routes: Applying large language models to vehicle routing
  • 嵌入式学习的第三十三天-进程间通信-UDP
  • SciTE(Scintilla Text Editor)的配置文件多个详解笔记250722
  • Web开发 05
  • 云祺容灾备份系统Hadoop备份与恢复实操手册
  • 188粉福
  • 【第三节】Class与Style绑定
  • 网络基础15-16:MSTP +VRRP综合实验
  • 单张显卡运行多个vllm模型
  • 零基础数据结构与算法——第五章:高级算法-回溯算法子集全排列问题
  • ZooKeeper学习专栏(六):集群模式部署与解析
  • C++ new 创建数组的内在原理详解
  • linux 环境服务发生文件句柄泄漏导致服务不可用
  • ELF 文件操作手册
  • python学习-读取csv文件
  • 如何验证分类模型输出概率P值的“好坏”:评估与校准示例
  • GitHub 上的开源项目 ticktick(滴答清单)
  • recvmsg函数的用法
  • 算法学习--滑动窗口
  • 学习python中离线安装pip及下载package的方法
  • C语言:函数基础
  • day059-zabbix自定义监控与自动发现
  • Node.js:Web模块、Express框架
  • es6中的symbol基础知识