雨后
雨后
  • 发布:2025-12-17 11:27
  • 更新:2025-12-17 14:26
  • 阅读:30

【报Bug】uni.openLocation底部导航按钮弹窗的浮动窗不对

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: windows10 专业版

HBuilderX类型: 正式

HBuilderX版本号: 4.87

手机系统: Android

手机系统版本号: Android 12

手机厂商: 华为

手机机型: 华为meta60

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

uni.openLocation 打开地图

预期结果:

导航按钮的弹窗 需要有高德的选项

实际结果:

导航按钮的弹窗 没有高德的选项

bug描述:

uni.openLocation 我调用这个 然后底部安卓有个导航的按钮 怎么显示的是腾讯地图和谷歌地图,地图打开的是高德(已购买商业授权),并且手机只装了高德APP

2025-12-17 11:27 负责人:DCloud_UNI_OttoJi 分享
已邀请:
Ask小助手

Ask小助手

该bug反馈内容不完整,缺少关键代码示例和manifest配置细节,仅说明"uni.openLocation打开地图",无法确认调用参数及地图服务商配置。根据知识库App端地图服务说明,App端默认使用高德地图(需正确配置AppKey),但导航弹窗选项由系统级地图选择器决定,非uni-app完全控制。

bug可能不成立:

  1. 华为设备Android 12系统可能强制调用系统地图选择器,优先显示预装地图应用(华为地图),而非设备已安装的高德APP
  2. 用户虽购买高德商业授权,但若manifest.json未正确配置高德AppKey(参考manifest配置指南),会导致回退到其他地图服务
  3. 知识库明确说明"不同平台打开的地图不一样,App端是高德地图",但导航选项行为属于系统级交互,uni-app仅能调用系统API

建议用户:

  • 检查manifest.json中是否配置了高德AppKey(需对应商业授权账号)
  • 尝试使用map组件自定义导航替代uni.openLocation
  • 确认HBuilderX 4.87是否为最新正式版(当前最新为4.90),旧版本可能存在兼容性问题

此问题更可能是配置或设备兼容性问题,而非uni-app核心bug。

内容为 AI 生成,仅供参考
DCloud_UNI_OttoJi

DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信

目前App 端点击导航会弹出导航选项,如果当前用户手机没有安装高德、百度、腾讯、谷歌等地图时候,会兜底展示网页版地图导航,保证功能可用。展示选项和用户手机安装情况有关,和开发者 mianfest.json 无关

你执行一下下面的代码,看是不是是哪个都是未安装,如果显示都没安装,会走到兜底的网页逻辑里。

const mapAppInstall = () => {  
        var mapsSource = [{  
                title: '高德地图',  
                pname: 'com.autonavi.minimap',  
                action: 'amapuri://',  

            },  
            {  
                title: '百度地图',  
                pname: 'com.baidu.BaiduMap',  
                action: 'baidumap://',  

            },  
            {  
                title: '腾讯地图',  
                pname: 'com.tencent.map',  
                action: 'qqmap://',  
            }  
        ]  
        mapsSource.forEach(function(mapsSource) {  
            var installed = plus.runtime.isApplicationExist({  
                pname: mapsSource.pname,  
                action: mapsSource.action,  
            })  
            console.log(mapsSource.title + (installed ? "已安装" : "未安装"));  
        })  
    }
  • DCloud_UNI_OttoJi

    经过沟通,你这个问题属于卓易通中运行安卓,目前卓易通运行安卓只能保证功能可用,读取设备应用列表是无法支持的,所以会回退到兜底的网页导航上

    2025-12-17 17:15

  • DCloud_UNI_OttoJi

    回复 DCloud_UNI_OttoJi: 本问题比较为不是 bug,文档已更新

    2025-12-17 18:40

要回复问题请先登录注册