在 Android 台设备上使用 Chrome 时出现 Modernizr 错误

Modernizr error when using Chrome on Android devices

我遇到了一个问题,我刚刚注意到这个问题,但在我之前发布的代码中从未见过。在 js 中我调用

navigator.geolocation.getCurrentPosition()...

我还对回调的成功和错误部分进行了编码。我遇到的问题是,在使用 Chrome 的 Android 设备上,我总是收到错误 "[object PositionError]"

如果我在同一台设备上使用 Firefox 就没问题。我测试过的所有 iOS 设备也可以工作。

有其他人 运行 解决过这个问题吗?如果有,您找到解决方案了吗?

这是我的完整代码块:

  if (Modernizr.geolocation) {
    navigator.geolocation.getCurrentPosition(
        function (position) {
            var lat = position.coords.latitude;
            var lng = position.coords.longitude;
            callback(lat, lng);
        }
        , function (err) {
            // 1 = PERMISSION_DENIED
            // 2 = POSITION UNAVAILABLE
            // 3 = TIMEOUT
            //if (err.code == err.PERMISSION_DENIED) {
            alert(err);
            alert('Current location could not be obtained from the device.\r\nCheck your GPS settings.');
            //}
        }
        , { timeout: 10000 }//10 secs.
    );
} else {
    alert('This device does not support GPS locations.');
}

As of Chrome 50,您无法再从非 https 网页访问地理定位 API。

不过,由于 Lets Encrypt 等项目,您现在可以免费获得 SSL 证书。