首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否仅请求地理位置信息来响应用户的手势?

是否仅请求地理位置信息来响应用户的手势?
EN

Stack Overflow用户
提问于 2017-12-01 03:53:51
回答 3查看 19.6K关注 0票数 19

我刚刚更新到Chrome64,并开始注意到我们的webapp应用程序中的这条消息:

代码语言:javascript
运行
复制
[Violation] Only request geolocation information in response to a user gesture.

这似乎限制太多了。当我在谷歌地图中导航时,我不需要重复点击“更新位置”。位置轮询的替代方案是什么?

我们目前使用的代码如下:

代码语言:javascript
运行
复制
let locInt = self.setInterval(function(){
    navigator.geolocation.getCurrentPosition(geoSuccess, geoError, geoOptions);
},5000);

我们的应用是基于位置的,并依赖于不断更新的位置。这里首选的方法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-12-02 01:49:15

watchPosition()方法允许您注册一个处理程序,每当设备的位置发生变化时,浏览器都会自动调用该处理程序。这比轮询更可取。

代码语言:javascript
运行
复制
id = navigator.geolocation.watchPosition(success[, error[, options]])

https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/watchPosition

票数 8
EN

Stack Overflow用户

发布于 2018-03-21 20:09:54

似乎有一个来自谷歌而不是recommendation可以在页面加载时加载地理位置:

用户对在页面加载时自动请求其位置的页面不信任或感到困惑。不是在页面加载时自动请求用户的位置,而是将请求绑定到用户的手势,例如点击"Find Stores Near Me“按钮。确保手势清晰而明确地表达了对用户位置的需求。

不管你用的是watchPosition()还是getCurrentPosition()都没关系

灯塔收集在页面加载时执行的JavaScript。如果此代码包含对geolocation.getCurrentPosition()或geolocation.watchPosition()的调用,并且尚未授予地理位置权限,则请求用户的位置。

我们还注意到,自从Chrome更新以来,在获取用户的地理位置方面有很大的延迟。

票数 22
EN

Stack Overflow用户

发布于 2020-01-05 16:12:59

我找到了某种解决方案!这个问题是由于"HTTP“而存在的。如果您想使用javascript,如“地理位置”,您服务器或本地服务器必须是HTTPS协议,而不是

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47581575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档