首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制GeoLocation允许

强制GeoLocation允许
EN

Stack Overflow用户
提问于 2016-03-14 02:20:24
回答 3查看 4.9K关注 0票数 1

目前,我正努力开发一个应用程序,供员工每天上下班。

我目前已经设置了地理定位,以自动获取用户的位置,并将其存储在数据库中,但是,由于明显的原因,如果用户按下拒绝,它无法获得该位置。

是否有一种方法,我可以强制位置在我的网页,或阻止页面加载,如果位置被禁用。

我已经成功地设置了一个函数,但是如果用户按下not now按钮或稍后选择,页面仍然会正确呈现,并且不会阻止员工使用系统。

我需要做的是:

  • 强制位置服务处于或阻止页面在关闭时呈现
  • 如果以前拒绝使用,则在页面加载时打开“允许/拒绝位置服务”框。

任何帮助都将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-14 02:48:19

我不知道您是如何生成页面的,但是如果您可以依赖Javascript来呈现,或者如果在拒绝的情况下重定向到错误页面是可以接受的,您可以使用以下事实:在发生拒绝时,您将得到一个错误回调:

代码语言:javascript
复制
navigator.geolocation.getCurrentPosition(success[, error[, options]])

所以你可以选择:

  • 只有在调用success处理程序时才呈现,否则显示错误(超时后)
  • 如果调用错误处理程序,则重定向到错误页。

现在,你的“明确否认”,我怀疑这是可能的。我能建议的最好是,您有关于清除错误页面中的geo设置的说明。不幸的是,这将取决于操作系统和浏览器。

票数 4
EN

Stack Overflow用户

发布于 2016-03-14 02:53:06

一旦用户否认,您就无法获得lat/lng。这是由浏览器执行的。另一种选择是获取用户的IP地址作为回退,将其映射到物理地址。但是请注意,当用户连接到wifi时,这种方法效果更好。3G/4G的精确度在邮编水平。

票数 1
EN

Stack Overflow用户

发布于 2017-07-04 11:28:46

地理定位的格式是

代码语言:javascript
复制
navigator.geolocation.getCurrentPosition(success, error, options)

您可以通过以下方式检查用户是否阻止了位置提示

代码语言:javascript
复制
navigator.geolocation.getCurrentPosition(
    function(position) {
        // Success goes here
    }.bind(this),
    function(error) {
        toastr.error("Please turn on location for this feature")
        setTimeout(function() {
            window.location.href = '/'
        }, 2000)
    }, [your options]
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35978541

复制
相关文章

相似问题

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