我正在建立一个应用程序来获取用户地址从谷歌地图基于其位置坐标从浏览器地理定位API。我使用了以下代码来获取坐标。弹出窗口显示允许第一次访问位置的权限。我已经允许在浏览器中访问位置的权限。但还是不行。
useEffect(() => {
if ("geolocation" in navigator) {
console.log("Available");
} else {
console.log("Not Available");
}
navigator.geolocation.getCurrentPosition(function(position) {
//do success handling
console.log(position);
console.log("Latitude is :", position.coords.latitude);
console.log("Longitude is :", position.coords.longitude);
},
function errorCallback(error) {
//do error handling
console.log(error);
},
{
timeout:5000
});
)}
如果条件给出 可提供 输出,但 getcurrentposition() 总是返回错误"用户不允许访问Windows位置"
地理定位查询的后台(API)是由各个浏览器制造商建立的。这包括权限设计和查询的位置。
你收到的错误似乎是微软Edge(如果我是正确的)。
微软Edge: 仅有网站级用户权限是不够的。用户还必须进入Windows设置> 位置> 启用位置+启用应用程序可以访问位置。Edge会先检查Windows权限,然后查询自己的API服务器的地理位置。
Chrome & Firefox: 一旦用户允许网站的位置权限,你就可以了。Google和Mozilla将查询各自的服务器以确定地理位置。