uni-app uni.getLocation在安卓机上失效

uni-app uni.getLocation在安卓机上失效

操作步骤:

  • 1

预期结果:

  • 1

实际结果:

  • 1

bug描述:

安卓机oppo A11x 安卓版本9 vpn已开 uni.getLocation type: ‘wgs84’,geocode: true 方法没进入 没有反应

信息类别 信息内容
产品分类 uniapp/App
PC开发环境 Windows
PC系统版本 win10
HBuilderX 正式
HBuilderX版本 3.3.12
手机系统 Android
手机系统版本 Android 12
手机厂商 OPPO
手机机型 A11x
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

更多关于uni-app uni.getLocation在安卓机上失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

请升级至HBuilder X 3.4.3-alpha试下,其他设备测试是否正常?

更多关于uni-app uni.getLocation在安卓机上失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


用了后三星S8能用定位,oppo,nexus不能用 { “errMsg”: “getLocation:fail get location fail.”, “errCode”: 2, “code”: 2 }

回复 z***@qq.com: 楼主,后来解决了嘛,我也遇到了

uni.getLocation 是 uni-app 提供的获取地理位置信息的 API。如果你在安卓机上发现该 API 失效,可能的原因有很多。以下是一些常见的排查和解决方法:


1. 检查权限配置

  • AndroidManifest.xml:确保在 AndroidManifest.xml 文件中已经添加了以下权限:
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    
  • 动态权限申请:在 Android 6.0 及以上版本,需要动态申请定位权限。确保在调用 uni.getLocation 之前,已经通过 uni.authorizeuni.getSystemInfo 获取了权限。
    uni.authorize({
      scope: 'scope.userLocation',
      success() {
        uni.getLocation({
          type: 'wgs84',
          success(res) {
            console.log('位置信息:', res);
          },
          fail(err) {
            console.error('获取位置失败:', err);
          }
        });
      },
      fail(err) {
        console.error('授权失败:', err);
      }
    });
    

2. 检查设备设置

  • 定位服务是否开启:确保设备的定位服务已经开启。
  • 高精度模式:在设备设置中,将定位模式设置为“高精度”模式(使用 GPS、Wi-Fi 和移动网络)。

3. 检查 API 调用参数

  • type 参数uni.getLocationtype 参数支持 wgs84gcj02,确保传入正确的值。
  • geocode 参数:如果需要获取地址信息,可以设置 geocode: true

4. 调试错误信息

  • 捕获错误:在 fail 回调中打印错误信息,帮助定位问题。
    uni.getLocation({
      type: 'wgs84',
      success(res) {
        console.log('位置信息:', res);
      },
      fail(err) {
        console.error('获取位置失败:', err);
      }
    });
回到顶部