4 回答

TA贡献1851条经验 获得超5个赞
您可以尝试使用地理定位 API 获取用户位置,并使用用户的 IP 地址进行回退,以防 API 在用户的环境中不起作用。
const success = (position) => {
// use position
};
const fallback = () => {
// try getting it via the user's IP
}
navigator.geolocation.getCurrentPosition(success, fallback);
当然,这完全取决于您需要多少精度。IP 地址本地化精度不高。

TA贡献2019条经验 获得超9个赞
要在 Web 客户端上查找用户的地理位置,您可以使用HTML Geolocation API和Google Geolocation(请参阅 stackoverflow 上的这个问题)。但是总是需要获得用户的许可才能在浏览器上知道他们的位置(浏览器位置权限)。如果用户不允许,Geolocation api 将不会提供任何结果。
尽管允许用户使用,但与移动设备(使用内置 GPS)不同,计算机上运行的 Web 浏览器所产生的某些地理位置不会精确或什至不接近(没有内置 GPS)。如果用户使用 VPN 或代理,找到精确的地理位置也将是麻烦的。
所以总结一下,我们无法得到;
每个用户的地理位置未经他们的许可
100% 准确度,无需在其 Web 访问设备上使用本机 GPS,并且在使用 vpn 时,代理正在使用中。
添加回答
举报