/*
* 异步创建script标签
*/
export default function MapLoader() {
return new Promise((resolve, reject) => {
if (window.AMap) {
resolve(window.AMap)
} else {
var url = 'https://webapi.amap.com/maps?v=1.4.15&key="自己的key"&callback=onLoad'
var script = document.createElement('script')
script.charset = 'utf-8'
script.src = url
script.onerror = reject
document.head.appendChild(script)
}
window.onLoad = () => {
resolve(window.AMap)
}
})
}
<button onClick={getIP}>获取用户ip</button>
// 引入
import MapLoader from '../../hook/geogy.jsx';
const getIP = () => {
MapLoader().then((AMap) => {
AMap.plugin('AMap.Geolocation', () => {
var geolocation = new AMap.Geolocation({
// 是否使用高精度定位,默认:true
enableHighAccuracy: true,
// 设置定位超时时间,默认:无穷大
timeout: 10000,
});
geolocation.getCityInfo((status, result) => {
//只能获取当前用户所在城市和城市的经纬度
if (status == 'complete') {
console.log('result1', result);
}
});
});
});
};