并不是所有的APP都要獲取你當前的地理位置的寝优,但是有的APP對這方面是特別重要的,例如催收的行業(yè)枫耳,準確獲取借款人的位置,才能不撲空~~
基本上實現(xiàn)的原理其實很簡單孟抗,前端要做的事情就是每次打開APP的時候獲取一下手機當前的位置迁杨,或者每隔幾分鐘就重新獲取一次。
注:RN提供的方法只能獲取到經(jīng)緯度凄硼,不會直接給你具體的城市或者街道铅协,如果要的話,可以用百度或者高德的逆地理編碼接口去轉(zhuǎn)摊沉,不過一般前端只是傳經(jīng)緯度給后端狐史,具體后端要拿去做什么操作,就不歸前端管了。當然骏全,如果你的APP要顯示你的當前城市苍柏,你也可以用接口轉(zhuǎn)然后顯示出來。
下面是我簡單實現(xiàn)的代碼:
componentDidMount() {
// APP啟動的時候獲取地理位置
this.getPosition();
}
/** 獲取地理位置(經(jīng)緯度) */
getPosition = (): void => {
/** 獲取地理位置 */
navigator.geolocation.getCurrentPosition(
(position: any) => {
// console.warn('成功:' + JSON.stringify(position));
const positionData: any = position.coords;
// 經(jīng)度:positionData.longitude
// 緯度:positionData.latitude
// 最后一步 todo:高德 || 百度地圖逆地理編碼轉(zhuǎn)~~具體就是調(diào)個接口把經(jīng)緯度丟進去就行了
},
(error: any) => {
console.warn('失斀薄:' + JSON.stringify(error.message))
}, {
// 提高精確度试吁,但是獲取的速度會慢一點
enableHighAccuracy: true,
// 設(shè)置獲取超時的時間20秒
timeout: 20000,
// 示應(yīng)用程序的緩存時間,每次請求都是立即去獲取一個全新的對象內(nèi)容
maximumAge: 1000
}
);
}