![]() |
1
3
我认为在这种情况下,我们的地理定位API的前景将是一个很好的解决方案。
阅读更多 |
![]() |
2
3
需要明确的是,如果用户没有单击其中一个提示选项,听起来你想做的是在3秒后关闭导航器地理位置提示。 这是不可能的 为什么? 导航器地理位置提示由浏览器控制,它不公开任何关闭弹出窗口的方法。 getCurrentPosition() 只有成功和错误处理程序,以及maximumAge、timeout和enableHighAccuracy选项。timeout选项有点误导,因为您可能会认为它是针对用户输入的超时。事实并非如此。超时是在单击accept后通过地理定位api发出的网络请求。 navigator.geolocation 只公开了三个方法:clearWatch()、getCurrentPosition()和watchPosition()。这些方法都不能中断getCurrentPosition()的调用。 进一步阅读表明,最佳做法是制作一个软提示,请求用户允许进行地理定位请求,理想情况下只有在某种用户输入之后(人们往往不喜欢在加载时弹出提示):
如果你仍然想在加载时显示地理位置提示,如果用户没有用setTimeout()在提示上单击接受或拒绝,并且用clearTimeout()清除成功或错误,那么没有什么能阻止你执行其他操作。你只是不能用JS作为这些操作之一来关闭提示符。 |
|
3
0
您可以添加 setTimeout 之前打电话 获取当前位置 如果用户执行了某些操作,则清除timeoutID:
|
![]() |
Cornelis · 与前一行的相对距离,以熊猫/蟒蛇为单位 2 年前 |
![]() |
Simon · GeoFire-使用半径将项目保存到特定位置 7 年前 |
![]() |
Mattia · 融合位置问题-地理定位不起作用 7 年前 |
|
moriyasamun · 如何通过代码设置地理位置 7 年前 |