uni-app无法直接集成高德导航SDK,只能通过plus.runtime.launchApplication唤起高德App(Android)或降级为网页导航(iOS),不支持途经点等高级参数,amap-wx.js等包在App端无效。

uni-app 里不能直接调用高德导航 SDK 的原生 API
uni-app 官方 uni.openLocation 和 uni.navigateToMiniProgram 都不支持唤起高德导航 App 并传入完整路线参数(比如途经点、避免高速、货车模式等)。所谓“集成高德导航 SDK”,在 uni-app 场景下实际是指:**唤起已安装的高德地图 App,并跳转到导航页**——这依赖系统级 Intent(Android)或 URL Scheme(iOS),不是 SDK 集成,也不需要离线打包或 native 插件。
你看到的“高德导航 SDK”文档(如 AMapNavi SDK)是给纯原生 Android/iOS 工程用的,uni-app 的 App 端无法直接接入该 SDK 做路径规划 + 原生导航视图渲染。强行封装成本高、维护难、iOS 审核风险大,且 uni-app 没有提供对应原生生命周期桥接能力。
Android 端唤起高德导航 App 的正确写法
必须用 plus.runtime.launchApplication(仅 App 端有效),不能用 uni.navigateTo 或 webview 跳转。关键点是 Intent URI 格式和包名校验:
- 先判断高德地图 App 是否已安装:
plus.runtime.isApplicationExist({ pname: "com.autonavi.minimap" }) - 拼接标准 Intent URI:
androidamap://route?sourceApplication=yourapp&slat=39.909&slon=116.397&dlat=39.910&dlon=116.398&dev=0&m=0,其中dev=0表示不走高速,m=0是驾车模式 - 调用时必须传
pname(包名)和uri,否则静默失败:plus.runtime.launchApplication({ pname: "com.autonavi.minimap", uri: "androidamap://..." }) - 注意:
slat/slon是起点,dlat/dlon是终点,单位为 WGS84 坐标系;高德地图 App 内部会自动转 GCJ02,但你传入的必须是合法经纬度(不能为 0 或 null)
iOS 端唤起高德导航 App 的限制与替代方案
iOS 上没有公开、稳定、长期可用的高德导航 URL Scheme。官方文档未开放,社区实测常用 scheme 如 iosamap:// 或 amap:// 在 iOS 16+ 已基本失效,且苹果会拦截无关联域名的跳转。因此:
Map RTOS SDK - 高德地图嵌入式 Map SDK 接入助手,支持栅格/矢量 Map 地图渲染、覆盖物绘制、轨迹导航及适配器实现指南
- 不要尝试用
uni.openURL("amap://..."),大概率白屏或弹出“无法打开”提示 - 真机调试时可临时用
plus.runtime.launchApplication测试,但需提前在ios/Info.plist中声明LSApplicationQueriesSchemes数组包含iosamap(不过从 2025 年起该 scheme 已被高德弃用) - 生产环境更稳妥的做法是降级为网页版导航:
uni.openURL("https://www.amap.com/dir?from=116.397,39.909&to=116.398,39.910&mode=car"),兼容性好,无需安装 App
为什么不用 amap-wx.js 或 @amap/amap-wx
amap-wx.js 是微信小程序专用 SDK,只封装了 Web 服务 API(如逆地理编码、路径规划),它返回的是 JSON 数据,**不负责唤起导航 App**。而 @amap/amap-wx npm 包本质相同,且在 uni-app App 端运行会报 require is not defined ——因为 App 端没有 CommonJS 运行环境。这两个包对“唤起高德导航”完全无用,混用只会浪费调试时间。
真正要做的,只是构造一个正确的 Intent URI 或 fallback 到网页链接。复杂逻辑(如多途经点、货车限行判断)得在服务端调用高德 Web 服务 API(https://restapi.amap.com/v3/direction/driving)预计算,再把结果喂给唤起参数——这部分和 uni-app 本身无关,属于业务后端范畴。










