navigator.geolocation vue H5定位在移动端ios版本12.2微信中不能使用

开发遇到的一点问题,在网上找了好久没有找到,解决以后,想总结一点本身心得,不喜勿喷。 如下都是vue开发,其余状况我没测试 也不知道。html

第一个坑

Internet Explorer 九、Firefox、Chrome、Safari 以及 Opera 支持地理定位。前端

IE9在W3c上说支持,可是在caniuse查到的并不支持。实测了一下 IE9支持。

第二坑

必需要采用https请求,这是改版以后,否则请求失败。vue

第三坑

ios版本微信12.2 即便https有时候也不能使用,这是为啥呢,我也不知道。 解决方案: 在index.html里面写方法,其余地方好像检测不到地理位置 安卓手机没有这种状况 ios

附上代码

// 定位
            navigator.geolocation.getCurrentPosition(
                position => {
                    let lat = ''
                    let log = ''
                    lat = position.coords.latitude; //纬度
                    log = position.coords.longitude; //经度
                    console.log("纬度:" + lat + ",经度:" + log);
                    localStorage.setItem("gps",JSON.stringify( {
                    longitude: log,
                    latitude: lat,
                    address: ""
                    }));
                },
                error => {
                    console.log(error);
                },
                {
                    enableHighAcuracy: true, // 指示浏览器获取高精度的位置,默认为false
                    timeout: 5000, // 指定获取地理位置的超时时间,默认不限时,单位为毫秒
                    maximumAge: 3000 // 最长有效期,在重复获取地理位置时,此参数指定多久再次获取位置。
                }
            );
复制代码

不想写了,本来打算好好写的,心情不太好, 直接简单说一下, 多是一个不称职的前端开发。git

相关文章
相关标签/搜索