5

Geolocation 当前位置 API 在 IE11 windows 10 机器上不一致。下面是代码

 function setCurrentPos(event, firstLoad) {
                navigator.geolocation.getCurrentPosition(function (position) {
                    firstLoad || setCurrentLocation(event.target, position.coords);
                }, function (error) {
                    1 === error.code && ($this.currentLocDenied = !0);
                });
            }

5 次中有 4 次进入错误块,响应代码为 2(POSITION_UNAVAILABLE),说明“无法确定当前位置。”。

似乎允许用户访问位置的浏览器提示设置为允许,因此这不应该是原因。

版本信息

在此处输入图像描述 还有什么建议吗??

4

2 回答 2

2

固定的

1 – 我在下面描述的更改应仅针对 IE 添加。因此,如果我们需要添加解决方法,请检查浏览器是否为 IE。不要更改其他浏览器。

2 – 将 enableHighAccuracy 的准确度更改为 false。我知道默认情况下这是错误的,但以防万一。

3 – 在缓存时间的 maximumAge 上添加一些合理的值。(仅适用于 IE)

var locationOptions = {};
if(deviceInfo.raw.browser.isIE && parseInt(deviceInfo.browser_version) == 11 &&  deviceInfo.os.isWindows10) {
            locationOptions = {
                enableHighAccuracy: false,
                  maximumAge: 50000
            }
    }

function setCurrentPos(event, firstLoad) {
                navigator.geolocation.getCurrentPosition(function (position) {
                    //success callback
                }, function (error) {
                        //error callback
                }, locationOptions);
            }

参考 - https://msdn.microsoft.com/en-us/library/gg593067(v=vs.85).aspx

于 2017-04-13T07:51:13.020 回答
0

直到今天(4.4.2017)“navigator.geolocation.getCurrentPosition”在win10 Insider Preview 15063.11 + IE11,Edge,FF下完美运行。但是今天只发生超时错误。所以现在网络上正在发生一些大事

*更新:2017 年 4 月 5 日一切正常

于 2017-04-04T13:18:54.390 回答