Chrome 地理定位API -始终获取-访问被拒绝

l5tcr1uw  于 2023-03-06  发布在  Go
关注(0)|答案(1)|浏览(287)

我正在使用的代码来获取我的网站上的地理位置。例如https://subdomain.domain.com/pwa

<script type = "text/javascript">

     function showLocation(position) {
        var latitude = position.coords.latitude;
        var longitude = position.coords.longitude;
        alert("Latitude : " + latitude + " Longitude: " + longitude);
     }

     function errorHandler(err) {
        if(err.code == 1) {
           alert("Error: Access is denied!");
        } else if( err.code == 2) {
           alert("Error: Position is unavailable!");
        }
     }

     function getLocation() {

        if(navigator.geolocation) {

           // timeout at 60000 milliseconds (60 seconds)
           var options = {timeout:60000};
           navigator.geolocation.getCurrentPosition(showLocation, errorHandler, options);
        } else {
           alert("Sorry, browser does not support geolocation!");
        }
     }

  </script>
<form>
     <input type = "button" onclick = "getLocation();" value = "Get Location"/>
  </form>

我在geoWatch.html中添加了上面的代码。当我访问该页面并单击-get location时,系统提示我允许-Geolocation,我接受了它,并且我可以在网站的设置中看到相同的地理位置是允许的。
但在我单击接受允许通知后-我立即收到错误警报-错误:访问被拒绝。我记得它工作正常,我搞砸了什么,在哪里,不知道哪里出了问题,所以我把这个样本代码,并把这两个在pwa文件夹以及在根网站测试,如果任何其他代码是冲突的,但它没有帮助。
附加注解:我安装了 chrome 金丝雀和那里它(相同的代码)是工作正常。
编辑:即使是Chrome金丝雀也只在第一次尝试时工作。任何后续尝试都会出现同样的错误。但三星手机浏览器即使在多次尝试后也能正常工作。

hwazgwia

hwazgwia1#

我最近遇到了同样的问题。在我的例子中,这是因为从服务器为地理定位设置的允许策略被设置为(),它应该是(self)。
权限策略文档

相关问题