8***@qq.com
8***@qq.com
  • 发布:2019-09-24 16:05
  • 更新:2023-10-17 17:46
  • 阅读:10783

uni.getLocation接口不执行的问题

分类:uni-app

代码如图

onShow() {  
    console.log('触发显示页面事件');  
    var _this = this;  
    uni.getLocation({  
        type: 'wgs84',  
        success: function(res) {  
            console.log('进入回调:success');  
        },  
        fail() {  
            console.log('进入回调:fail');  
        },  
        complete() {  
            console.log('进入回调:complete');  
        }  
    });  
    console.log('结束事件');  
},

一开始没注意,打包后才发现有问题,于是写了上述测试代码,输出结果和顺序为

触发显示页面事件  
index.vue:597 结束事件

问题描述:
uni.getLocation不执行,就像没写
H5平台,不执行,绑定按钮点击事件都没用,但是指不定什么时候就成功了一下,大概十几二十次成功一次。
APP+MUMU模拟器,安卓6.1,正常
APP+逍遥模拟器 安卓7.1正常
APP打包 mate20 pro 安卓9.1 没动静

就在我调了老半天没反应来发帖的时候,回去复制console输入日志居然有了一条成功信息,真是醉了。不怕失败了,我还可以以为是我的问题,就怕成功+失败,我简直找不到问题

发个帖子结束又多了两个fail触发记录,看来也不是失败了,而是延时很久。

然后看文档有这句话H5:无 GPS 模块的 PC 设备使用 Chrome 浏览器的时候,位置信息是连接谷歌服务器获取的,国内用户可能获取位置信息失败。我怀疑失败就是因为向谷歌请求没梯子造成的,我觉得与其这样不如直接fail比较好。99.9的人不会开着梯子用APP

2019-09-24 16:05 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com

这次我看谁说edge不行!给我站出来!

PhilipJc

PhilipJc

同样的问题 。这么解决的?

  • 8***@qq.com (作者)

    没解决,H5我直接判断客户端服务端定位,并且让用户自己选位置

    2020-04-30 10:11

  • mojon

    很赞成作者的说法 99.9的人不会开着梯子,chrome 浏览器需要开 梯子 才可以,edge 浏览器可以生效

    2022-01-19 16:24

1***@qq.com

1***@qq.com - 小开发

我 usb 连接真机模拟测试没有问题。 但是打完包就出现问题: uni.getLocation 这个方法执行了。但是没有进入 success 也没有进入 fail . 只进入到 complete 返回了一个 [object object]... 什么原因?

1***@qq.com

1***@qq.com - 小开发

uni.getLocation() 无法成功!
目前现状:1、2.6.11更新后才出现这个问题。 2.6.11更新后, 安卓app打包后无法获取到经纬度
2、项目目前本地USB调试可以正常使用uni.getLocation()。
3、 但是打完app包后。 该方法无法使用。 以下是代码和结果:
代码如下:

    mounted: function(){  
        let _this = this;  
        uni.getLocation({  
            type: 'wgs84',  
            success: function(res) {  
                console.log('当前位置的经度:' + res.longitude);  
                console.log('当前位置的纬度:' + res.latitude);  
                _this.param.longitude = res.longitude;  
                _this.param.latitude = res.latitude;  

                uni.showModal({```javascript  

                    title: 'a',  
                    content: 'a'+ JSON.stringify(res)  
                });  
                // uni.showToast({  
                //     title: _this.param.longitude + _this.param.latitude +'mounted',    
                // })  
                _this.init();  
            },  
            fail: function (err) {   

                uni.showModal({  
                    title: 'b',  
                    content: 'b'+ JSON.stringify(err)  
                });  
            },    
            complete: function (err) {    
                 uni.showModal({  
                     title: 'c',  
                     content: 'c'+ JSON.stringify(err)  
                 });  
            }    
        });  
    }
  • 偏雪

    我的也是执行回调不执行success 问题出在哪了呢 请指教

    2021-05-20 11:45

  • 8***@qq.com (作者)

    回复 偏雪: 目前发现

    1:没有定位权限,三个回调都不执行

    2:获取位置时正在询问授权,此时三个回调也都不会执行,不知道是不是这个问题,定位问题真时恶心死人

    2023-03-28 11:31

c***@163.com

c***@163.com

uniapp 打包后uni.getLocation 不起作用 同样的问题 测试连接正常 打包后不起作用 怎么解决呢

z***@163.com

z***@163.com

同问, uni.getLocation 不起作用 同样的问题 测试连接正常 打包后不起作用

8***@qq.com

8***@qq.com - hellocong

同问, uni.getLocation 不起作用 同样的问题 测试连接正常 打包后不起作用

  • y***@163.com

    版本升级之后要去高德或者百度申请key

    2020-11-20 10:45

[已删除]

[已删除]

同问

[已删除]

[已删除]

同问

y***@163.com

y***@163.com

需要去百度或者高德去申请key 并且配置在项目里面

tpframe2020

tpframe2020 - 免费提供大量开源程序

我的其它端都正常,除了手机端H5有问题,就是不执行getLocation,不知道什么情况

  • 成都H5

    解决了吗 我也是同样的问题

    2021-09-25 15:29

mojon

mojon

chrome 浏览器需要开 vpn 才可以,edge 浏览器可以生效

y***@youjiuzs.com

y***@youjiuzs.com

将type类型换成 gcj02,然后再去申请高德或百度的key

1***@163.com

1***@163.com - 一个平凡的码农

受不了了,必须吐槽一下,chrome,火狐都不行,然后我打开了edge,居然能获取到定位了,真是神奇,都2023了,这个还解决不了!!!,甚至连提示都没有

要回复问题请先登录注册