React Native 取得地理位置 navigator.geolocation 得到 location request timed out

我的測試手機是 samsung edge plus 6.
使用 react native 版本為: ^0.26.1
在抓取 location 一直拿不到,反而一直出現 error "location request timed out".

測試過程:
onPress 事件如下:
_onPress() {
    console.log('on press'); // 放個 console 看有沒有正確執行
    navigator.geolocation.getCurrentPosition(
      (pos) => {
        console.log('pos', pos);
        this.props.onGetCoords(pos.coords.latitude, pos.coords.longitude);
      },
      (error) => alert(error),
      {enableHighAccuracy: true, timeout: 20000, maximumAge: 1000}
    );
  }

另外,AndroidManifest.xml 也有加上取得位置的權限 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

手機有確定有開啟定位。

上網 google 一番發現有人也有類似問題 [react-native/issues/7495] Geolocation 'enableHighAccuracy' on Android always times out,最後我已把 enableHighAccuracy 改為 false, 可以正確取得 location 資訊:
{enableHighAccuracy: true, timeout: 20000, maximumAge: 1000}

請問有人有其他解嗎?!... 不是很喜歡這種方式... QQ

留言

這個網誌中的熱門文章

[Android] 筆記 手機上測試自己的 APP

解決fatal: Not a git repository (or any of the parent directories): .git錯誤

[Android 筆記] 設定 ImageView 的圖檔來源