uni-app 苹果14.6 uni.getLocation定位无法使用
uni-app 苹果14.6 uni.getLocation定位无法使用 产品分类:
- uniapp/H5
PC开发环境操作系统:
- Windows
PC开发环境操作系统版本号:
- win10
HBuilderX类型:
- 正式
HBuilderX版本号:
- 3.1.22
浏览器平台:
- 微信内置浏览器
浏览器版本:
- 8.0.9
项目创建方式:
- HBuilderX
App下载地址或H5网址:
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows 10 | 3.1.22 | HBuilderX |
示例代码:
uni.getLocation({
type: 'gcj02',
success(res) {
console.log("定位成功: ",res);
},
fail(err) {
console.log("定位失败: ",res);
},
complete(res) {
console.log("定位结束: ",res);
}
})
操作步骤:
uniapp 打包成h5 ios手机微信打开页面调用定位方法即可
预期结果:
正常返回定位结果
实际结果:
没有任何定位信息
bug描述:
uni.getLocation 苹果ios14.6 不能正常调用,无任何返回,苹果ios13 可以正常调用
更多关于uni-app 苹果14.6 uni.getLocation定位无法使用的实战教程也可以访问 https://www.itying.com/category-93-b0.html
试试系统浏览器是否正常?
更多关于uni-app 苹果14.6 uni.getLocation定位无法使用的实战教程也可以访问 https://www.itying.com/category-93-b0.html
苹果系统浏览器正常,微信的不行
应该是微信8.0.9更新的问题,同样是8.0.9 苹果有的用户微信可以定位,有的微信就不行,安卓的定位正常
根据你提供的信息,这个问题主要涉及iOS 14.6系统在微信内置浏览器中调用uni.getLocation时无响应。以下是可能的原因和解决方案:
-
iOS 14+定位权限变更:iOS 14开始,定位权限分为“精确位置”和“大致位置”。你的应用可能只获取了“大致位置”权限,而uni.getLocation需要“精确位置”。建议在调用前检查权限状态,使用
uni.authorize申请精确定位权限。 -
微信浏览器安全限制:微信内置浏览器对定位接口有额外限制。确保你的H5域名已备案,且在微信公众平台配置了JS接口安全域名。同时,定位功能必须在用户触发的事件(如点击)中调用,直接页面加载调用可能被拦截。
-
HTTPS要求:H5定位必须使用HTTPS协议,你的网址已是HTTPS,符合要求。
-
代码调整建议:在调用
uni.getLocation前,先通过uni.getSystemInfo检测系统版本,针对iOS 14+做兼容处理。示例:uni.getSystemInfo({ success(res) { if (res.platform === 'ios' && parseFloat(res.system) >= 14.0) { // 申请精确定位权限 uni.authorize({ scope: 'scope.userLocation', success() { uni.getLocation({...}); } }); } else { uni.getLocation({...}); } } });

