uni-app uni.chooseLocation 安卓平台无法访问附近列表

发布于 1周前 作者 bupafengyu 来自 Uni-App

uni-app uni.chooseLocation 安卓平台无法访问附近列表

示例代码:

chooseLocation(key) {
uni.chooseLocation({
success: (res) => {
console.log('位置名称:' + res.name);
// console.log('详细地址:' + res.address);
console.log('纬度:' + res.latitude);
console.log('经度:' + res.longitude);
this.from[key] = res.longitude + ',' + res.latitude
}
});
},

操作步骤:

点击进入地图选址页面后就立马报错

预期结果:

可以正常访问附近信息

实际结果:

无法访问附近信息

bug描述:

uni.chooseLocation 报错,无法访问附近信息。

附件

image image

项目信息 描述
产品分类 uniapp/App
PC开发环境 Windows
PC开发环境版本号 win10
HBuilderX类型 正式
HBuilderX版本号 4.36
手机系统 Android
手机系统版本号 Android 14
手机厂商 vivo
手机机型 iqoo z8
页面类型 vue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

2 回复

高德key访问次数充足


在处理 uni-appuni.chooseLocation 方法在安卓平台上无法访问附近列表的问题时,我们首先需要确认几个关键点:

  1. API调用权限:确保在 manifest.json 中已经正确配置了相关权限,特别是地理位置权限。
  2. SDK版本:检查 uni-app 和相关依赖的SDK版本是否为最新,因为旧版本可能存在已知问题。
  3. 设备兼容性:不同安卓设备和系统版本可能有不同的行为表现,确保在多种设备上测试。
  4. 代码实现:确保代码实现正确,且符合 uni-app 的API调用规范。

以下是一个简单的 uni.chooseLocation 调用示例,以及如何在 manifest.json 中配置权限:

代码示例

// 在页面的methods中调用chooseLocation
methods: {
    chooseMyLocation() {
        uni.chooseLocation({
            success: (res) => {
                console.log('Location chosen:', res);
                // 处理选择的位置信息
            },
            fail: (err) => {
                console.error('Failed to choose location:', err);
                // 处理失败情况
            }
        });
    }
}

在页面的某个按钮点击事件中调用 chooseMyLocation 方法:

<button @click="chooseMyLocation">选择位置</button>

配置权限

manifest.json 中添加地理位置权限配置:

{
    "mp-weixin": { // 示例平台配置,针对微信小程序
        "appid": "your-app-id",
        "setting": {
            "urlCheck": false
        },
        "permission": {
            "scope.userLocation": {
                "desc": "你的位置信息将用于小程序位置接口的效果展示"
            }
        }
    },
    "plus": { // 5+ App(包括安卓和iOS)配置
        "distribute": {
            "android": {
                "permissions": [
                    "android.permission.ACCESS_FINE_LOCATION",
                    "android.permission.ACCESS_COARSE_LOCATION"
                ]
            }
        }
    }
}

注意事项

  • 确保在调用 uni.chooseLocation 前,用户已经授权地理位置权限。如果没有授权,需要引导用户授权。
  • 如果在真机上测试仍然出现问题,尝试查看安卓设备的系统日志(如使用 adb logcat),看是否有更详细的错误信息。
  • 考虑到不同安卓版本的兼容性,可能需要针对特定版本进行特殊处理。

通过上述步骤,通常可以解决大部分关于 uni.chooseLocation 在安卓平台上无法访问附近列表的问题。如果问题依旧存在,建议查阅 uni-app 的官方文档或社区,看看是否有其他开发者遇到并解决了相同的问题。

回到顶部