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.authorize
或uni.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.getLocation
的type
参数支持wgs84
和gcj02
,确保传入正确的值。geocode
参数:如果需要获取地址信息,可以设置geocode: true
。
4. 调试错误信息
- 捕获错误:在
fail
回调中打印错误信息,帮助定位问题。uni.getLocation({ type: 'wgs84', success(res) { console.log('位置信息:', res); }, fail(err) { console.error('获取位置失败:', err); } });