我正在使用的代码来获取我的网站上的地理位置。例如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金丝雀也只在第一次尝试时工作。任何后续尝试都会出现同样的错误。但三星手机浏览器即使在多次尝试后也能正常工作。
1条答案
按热度按时间hwazgwia1#
我最近遇到了同样的问题。在我的例子中,这是因为从服务器为地理定位设置的允许策略被设置为(),它应该是(self)。
权限策略文档