地理位置 API 权限 Web 浏览器

Posted

技术标签:

【中文标题】地理位置 API 权限 Web 浏览器【英文标题】:Geolocation API Permissions Web Browser 【发布时间】:2011-06-02 14:56:35 【问题描述】:

我正在使用此代码来获取用户地理位置。一切顺利,直到用户拒绝获取位置的权限。这个选项似乎被缓存了,我不知道如何重置它。

有没有办法重新申请许可?提前致谢!

if (navigator.geolocation)                                             

        navigator.geolocation.getCurrentPosition(function(position)        

            // Success Callback


        , function(error) 
            //error Callback

        ,
                  //options
            );
     else
        //geolocation not available
     

【问题讨论】:

【参考方案1】:

很确定这是每个站点存储的浏览器/设备设置。我认为关键是您不能从脚本中重置它,因为它首先会破坏提示的要点。我相信重置的唯一方法是更改​​浏览器/设备中的设置。

【讨论】:

【参考方案2】:

就像 bgreater 所说,这取决于浏览器。但是当用户拒绝获取位置的权限时,将使用错误对象调用错误函数。此错误对象包含错误代码。当错误码等于1时,表示用户拒绝权限。

var errorTypes = 
    0: "Unknown error",
    1: "Permission denied by user",
    2: "Position is not available",
    3: "Request timed out" 
;

我认为,您可以检查此错误代码并向用户显示某种信息。

【讨论】:

以上是关于地理位置 API 权限 Web 浏览器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Web 应用程序中请求用户对 html5 地理位置 api 的权限?

Web API 在 MVC 中存储承载令牌的位置

在 .net 核心 web api 中存储 JWT 令牌的位置?

当移动设备处于睡眠模式或浏览器处于后台时,如何使用 Web 应用程序在移动浏览器中使用 HTML Geolocation API 获取位置?

如何在不通过 Web 调用的情况下在浏览器中查找地理位置

融合位置 API 运行时权限错误