该接口已经不建议使用
, 请调用新接口getCurrentLocation
getLocation用来获取用户当前的地理位置信息
AlipayJSBridge.call('getLocation', function (result) {
alert(JSON.stringify(result));
});
<h1>点击获取详细地理位置信息</h1>
<p>一般情况下还会返回周围兴趣点</p>
<a href="#" class="btn read">点击获取定位信息</a>
<script>
function ready(callback) {
// 如果jsbridge已经注入则直接调用
if (window.AlipayJSBridge) {
callback && callback();
} else {
// 如果没有注入则监听注入的事件
document.addEventListener('AlipayJSBridgeReady', callback, false);
}
}
ready(function() {
document.querySelector('.read').addEventListener('click', function() {
AlipayJSBridge.call('getLocation', function(result) {
if (result.error) {
alert(result.errorMessage);
return;
}
alert(JSON.stringify(result));
});
});
});
</script>
<h1>点击获取用户所在地经纬度</h1>
<a href="#" class="btn read">点击获取定位信息</a>
<script>
function ready(callback) {
// 如果jsbridge已经注入则直接调用
if (window.AlipayJSBridge) {
callback && callback();
} else {
// 如果没有注入则监听注入的事件
document.addEventListener('AlipayJSBridgeReady', callback, false);
}
}
ready(function() {
document.querySelector('.read').addEventListener('click', function() {
AlipayJSBridge.call('getLocation', { requestType: 2 }, function(result) {
if (result.error) {
alert(result.errorMessage);
return;
}
alert(JSON.stringify(result));
});
});
});
</script>
AlipayJSBridge.call('getLocation', {
cacheTimeout, requestType, reGeocodeServiceType, timeout, horizontalAccuracy
}, fn)
名称 | 类型 | 描述 | 必选 | 默认值 | 版本 |
---|---|---|---|---|---|
cacheTimeout | float | 钱包经纬度定位缓存过期时间,单位秒,例如:钱包上一次定位时间是10:00:00,当前调用cacheTimeout=5,当前时间是10:00:06,则判断缓存过期不可用,会重新定位 | N | 30s | 9.0 |
requestType | int | 0:详细逆地理编码,带周边信息(当使用MobileLBS服务时,当遇到流量巨大时可能会做降级处理,届时可能没有poi周边信息) 1:逆地理编码到城市 2:仅获取经纬度 | N | 0 | 9.0.1 |
timeout | float | 定位超时失败回调时间,单位秒 | N | 10s | 9.0.1 |
horizontalAccuracy | float | 定位精度,默认是不限制精度。当超过误差精度时,会继续等待位置更新,直到超时,超时处理使用最后一次定位的经纬度。 | N | 9.0.1 | |
fn | function | 定位完成后被调用的回调函数 | N | 9.0.1 |
回调函数带入的参数result: {error, extError, latitude, longitude, country, countryCode, city, province, citycode, adcode, streetNumber, pois}
名称 | 类型 | 描述 | 版本 |
---|---|---|---|
error | int | 错误码(12:请确认定位相关权限已开启; 13:定位失败,请稍后再试; 14:网络异常,请稍后再试; 15:定位失败,请稍后再试) | 10.0.18 |
extError | int | 扩展错误码(android上由高德SDK导出) | 8.6 |
latitude | double | 纬度 | 8.1 |
longitude | double | 经度 | 8.1 |
country | string | 国家(requestType为0,1时生效) | 9.6.6 |
countryCode | string | 国家编号(requestType为0,1时生效) | 9.6.6 |
city | string | 城市,建议result.city?result.city:result.province这样来获取city) | 8.1 |
province | string | 省份 | 8.1 |
citycode | string | 城市编码 | 8.2 |
adcode | string | 区域编码 | 8.2 |
streetNumber | object | 门牌信息,结构是:{street, number} | 8.2 |
pois | array | 周边兴趣点 | 8.2 |
getLocation
不能获取provinceCode。getLocation
不能获取district信息,比如 中国浙江省杭州市西湖区万塘路18号 这个地址,getLocation
不会返回西湖区这个信息。