Javascripts 地理定位 - 用户拒绝提供数据
Posted
技术标签:
【中文标题】Javascripts 地理定位 - 用户拒绝提供数据【英文标题】:Javascripts geolocalization - User refuses to give data 【发布时间】:2015-10-02 14:22:17 【问题描述】:这个JS函数可以正常工作;但如果用户拒绝通过浏览器提供本地化,则不会。
如何修改?
function getPosition()
if (navigator.geolocation)
navigator.geolocation.getCurrentPosition(showmyPosition);
else
alert("Geolocation doesn't work");
function showmyPosition(position)
document.location.href="/near?lat="+ position.coords.latitude +"&lng="+ position.coords.longitude +"";
【问题讨论】:
如果用户拒绝提供他们的位置,那么你就不能拥有它。就这么简单。 【参考方案1】:navigation.geolocation
不检查用户是否接受地理定位,它只检查浏览器是否支持地理定位。
但是,您可以为 getCurrentPosition 提供错误回调,您可以从中读取错误。请参阅下面的示例
function getPosition()
if (navigator.geolocation)
navigator.geolocation.getCurrentPosition(showmyPosition, errorCallback);
else
alert("Browser does not support geolocation");
function showmyPosition(position)
document.location.href = "/near?lat=" + position.coords.latitude + "&lng=" + position.coords.longitude + "";
function errorCallback(error)
if (error.code === 1)
alert("User denied geolocation");
【讨论】:
【参考方案2】:如果用户不允许通过浏览器进行地理定位,您可以使用 IP 地址来估计他们的位置。
您可以从http://ipinfodb.com 的 API 注册
【讨论】:
以上是关于Javascripts 地理定位 - 用户拒绝提供数据的主要内容,如果未能解决你的问题,请参考以下文章
当用户选择“不再询问”并禁用地理定位时,React native `Geolocation.getCurrentPosition` 承诺将永远不会被解决/拒绝