在开发 Web 应用程序时,我使用的是 HTML5 Geolocation API。我已完成以下步骤:
- 我关闭了台式计算机上的 WiFi 连接。
我使用以下方法触发了位置请求:
var params = {enableHighAccuracy: true, timeout:3600, maximumAge:60000}; navigator.geolocation.getCurrentPosition( reportPosition, gpsError, params );
我使用 Google Chrome 浏览器 [版本 41.0.2272.89(64 位)] 运行我的 HTML 代码,我发现该
gpsError
函数已被调用两次。我第一次收到一个错误代码POSITION_UNAVAILABLE
,这对我来说很有意义,因为连接已关闭。但令人惊讶的是,我发现第二次的错误代码是TIMEOUT
.我在 Safari [版本 8.0.4 (10600.4.10.7)] 上运行相同的代码,并且该
gpsError
函数仅被调用一次并带有错误代码POSITION_UNAVAILABLE
我打开了地理定位标准,发现了以下步骤:
但是在第5.2 PositionOption interface节中,它声明了以下内容:
TIMEOUT
所以我猜chrome违反了Geolocation API的标准,因为在知道postion不可用的事实之后调用错误回调对我来说没有意义,即调用错误回调POSITION_UNAVAILABLE
哪个被认为符合标准,chrome 或 safari?