uniapp 在h5和小程序上使用高德定位用户城市
- 开发文档 https://lbs.amap.com/api
- 错误状态 https://lbs.amap.com/api/webservice/guide/tools/info/
- 虽然用的高德但是你还需要申请一个腾讯地图的key来使用 getLocation API
- https://uniapp.dcloud.io/collocation/manifest?id=h5sdkconfig
get_addr.js
const amap_wx_key = '<高德小程序key>';
const amap_h5_key = '<web服务key>';
// 小程序需要配置 restapi.amap.com 为合法域名
export function get_addr() {
return new Promise((_res, _rej) => {
uni.getLocation({
success: function (pos) {
uni.request({
method: 'GET',
url: 'https://restapi.amap.com/v3/geocode/regeo',
data: {
key: amap_h5_key,
location: `${pos.longitude},${pos.latitude}`,
poitype: '城市',
},
success: ({
data
}) => {
console.log(data);
_res(data.regeocode.addressComponent);
},
fail: r => {
_rej(r);
}
});
}
});
})
}