2016年6月6日 星期一

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

沒有留言:

張貼留言

若你看的文章,時間太久遠的問題就別問了,因為我應該也忘了... XD

Vue multiselect set autofocus and tinymce set autofocus

要在畫面一進來 focus multiselect 的方式: 參考: https://jsfiddle.net/shentao/mnphdt2g/ 主要就是在 multiselect 的 tag 加上 ref (例如: my_multiselect), 另外在 mounted...