uni-app uni.chooseLocation 安卓无法访问附近信息 key的配置正常访问次数也充足

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

uni-app uni.chooseLocation 安卓无法访问附近信息 key的配置正常访问次数也充足

产品分类

uniapp/App

示例代码

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;
    }
  });
}

操作步骤

运行这个方法 chooseLocation 之后就会保存。

预期结果

安卓不会报错,可以正常访问附近信息。

实际结果

安卓报错,无法正常访问附近信息。

bug 描述

uni.chooseLocation 安卓无法访问附近信息,key 的配置正常,访问次数也充足。

Image 1 Image 2 Image 3 Image 4 Image 5

开发环境与版本信息

项目创建方式 PC开发环境操作系统 PC开发环境操作系统版本号 HBuilderX类型 HBuilderX版本号 手机系统 手机系统版本号 手机厂商 手机机型 页面类型 vue版本 打包方式
HBuilderX Windows win10 正式 4.36 Android Android 14 vivo iqoo z8 vue vue3 云端

3 回复

解决了吗?同样的问题

针对你提到的uni-app中uni.chooseLocation在安卓设备上无法访问附近信息的问题,这里提供一个可能的解决思路和代码示例,帮助你排查和解决问题。首先,确保你已经正确配置了相关权限和key,并且访问次数确实充足。以下是一些代码示例和检查步骤,帮助你进一步定位问题。

1. 检查权限配置

确保你的AndroidManifest.xml文件中已经添加了必要的权限,例如访问位置信息的权限:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

2. 动态申请权限(Android 6.0及以上)

在Android 6.0(API 级别 23)及以上版本中,除了在AndroidManifest.xml中声明权限外,还需要在运行时请求权限。以下是一个动态申请位置权限的示例:

// 检查并请求权限
function requestLocationPermission() {
    if (uni.getSystemInfoSync().platform === 'android') {
        uni.authorize({
            scope: 'scope.userLocation',
            success() {
                // 权限申请成功,调用chooseLocation
                chooseLocation();
            },
            fail() {
                console.error('位置权限申请失败');
            }
        });
    } else {
        // 非安卓平台,直接调用chooseLocation
        chooseLocation();
    }
}

function chooseLocation() {
    uni.chooseLocation({
        success(res) {
            console.log('选择位置成功', res);
        },
        fail(err) {
            console.error('选择位置失败', err);
        }
    });
}

// 调用函数请求权限并选择位置
requestLocationPermission();

3. 检查Key配置

确保你的高德地图或腾讯地图等地图服务的Key配置正确,并且没有过期或被限制。这通常涉及到在地图服务提供者的控制台中创建应用并获取相应的Key,然后在你的manifest.json或相关配置文件中进行配置。

4. 调试和日志

使用Android Studio或其他调试工具查看运行时日志,检查是否有关于权限或地图服务的错误信息。这些信息可以帮助你进一步定位问题。

5. 示例完整代码

将上述代码整合到一个完整的页面中,确保所有逻辑都按预期执行。如果问题依旧存在,可能需要考虑是否是设备兼容性问题或地图服务提供者的后端问题。

希望这些代码示例和检查步骤能帮助你解决uni.chooseLocation在安卓设备上无法访问附近信息的问题。如果问题仍未解决,建议联系地图服务提供者的技术支持获取更专业的帮助。

回到顶部