html5如果用户拒绝获取经纬度,如何重新获取权限提示是否允许获取经纬度

如题所述

navigator.geolocation.getCurrentPosition(on_success, on_error, options);

获得地理位置

下面是函数on_success的写法示例。它有一个参数,你将最终通过这个函数获取到用户的位置。经纬度分别存在longitude和latitude变量中,同时还有精度、时间戳,以及一些其他额外信息:

function on_success(pos) {
// 将会获得以下信息
var latitude = pos.coords.latitude;
var longitude = pos.coords.longitude;
var accuracy = pos.coords.accuracy;
var timestamp = pos.timestamp;
// 以下信息不一定提供,和具体设备有关
var altitude = pos.coords.altitude;
var altitudeAccuracy = pos.coords.altitudeAccuracy;
var heading = pos.coords.heading;
var speed = pos.coords.speed;
}
其中altitude、altitudeAccuracy、heading和speed则根据用户的终端不同,可能提供,可能为null。

错误处理

上面我们还有一个on_error。显然,如果用户不同意,那我们无法获得任何信息,这时候系统会自动调用这个函数。

function on_error(error) {
console.log(error.message);
if (error.code == error.PERMISSION_DENIED) {
console.log("User denied Geolocation.");
} else // handle other cases...
}
其中error.code为一个枚举类型,可能的取值如下:

PERMISSION_DENIED:用户拒绝
POSITION_UNAVAILABLE:地理位置获取失败(可能是用户没网或卫星搜不到等原因)
TIMEOUT:地理位置获取超时
而error.message则为一个可以帮助开发者调试的错误信息(此信息一般不适合直接显示在网页中给用户查看)。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-08-29
很多都具有GPS功能,所以很容易获得用户的地址。但是对于pc浏览器来说,没有gps的设备都是通过下面的方法来获得的。ip地址转换用户地址;使用无线网络的基站位置定位;Html5geolocation获得用户的经纬度,转换地址;
第2个回答  推荐于2018-03-01
看一下,手机设置,有时候寻不到星,就获得不了经纬度。本回答被网友采纳
第3个回答  2018-03-19
你好,我也遇到同样问题。请问下楼主是如何解决的?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网