2017-05-02 151 views
1

我是新來的反應。我期望使用Cordova插件從Web-App構建移動應用程序。 所以在這種情況下,我想獲得應用程序的位置。我正在嘗試使用react-native地理位置React-native Geolocation

我跟着facebook的教程here。但是當我嘗試它時,它沒有顯示我的位置。取而代之的是從未知的{}的位置變化值。

我在這裏可能會出現很少的錯誤。

  1. 我使用代理
  2. 測試這不是在Android或任何其他本機設備的瀏覽器。
  3. Facebook的鏈接說,這是反應母語,但我的項目是由創建反應的應用程序內,我認爲還沒有反應過來,原生

如果這些是不是這個錯誤的原因,請幫助創建。

我的代碼,

import React,{Component} from 'react'; 
 
class GeoLocation extends React.Component { 
 
\t state = { initialPosition: 'unknown', 
 
\t \t \t lastPosition: 'unknown', }; 
 

 
\t watchID: ?number = null; 
 

 
\t componentDidMount() { 
 
\t \t if (navigator.geolocation) { 
 
\t \t \t navigator.geolocation.getCurrentPosition((position) => { 
 
\t \t \t \t var initialPosition = JSON.stringify(position); 
 
\t \t \t \t this.setState({initialPosition}); 
 
\t \t \t }, 
 
\t \t \t (error) => alert(JSON.stringify(error)), { 
 
\t \t \t \t enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 
 
\t \t \t }); 
 
\t \t \t 
 
\t \t \t this.watchID = navigator.geolocation.watchPosition((position) => { 
 
\t \t  \t \t var lastPosition = JSON.stringify(position); 
 
\t \t  \t this.setState({lastPosition}); 
 
\t \t  }); 
 
\t \t  } 
 
\t \t } 
 

 
\t componentWillUnmount() { 
 
\t navigator.geolocation.clearWatch(this.watchID); 
 
\t } 
 

 
\t render() { 
 
\t  \t \t return ( 
 
\t  \t \t \t <div className="main"> 
 
\t  \t \t \t \t <h1> Initial position: {this.state.initialPosition} </h1> 
 
\t  \t \t \t \t <h1> Current position: {this.state.lastPosition} </h1> 
 
\t  \t \t </div> 
 
\t  \t \t); 
 
\t  \t } 
 
} 
 
export default GeoLocation;

回答

1

HyperTrack,我們已經建立了一個位置服務,其中包括一些陣營庫和示例應用程序的反應,科爾多瓦我們Github找到。這可能會解決你抓住位置的問題,或者至少讓你走上正確的軌道。

+0

謝謝!它似乎很酷,但我正在爲這個學期項目做這個。所以買不起這樣的服務。非常感謝。 :) – HelpingHand

+0

順便說一下,側邊導航欄中的鏈接似乎在DOCS頁面中斷了!我正在閱讀文檔時遇到一些麻煩! – HelpingHand

+0

@HelpingHand - 該服務可以免費進行跟蹤,在「沙盒」/測試模式下,您可以對最多20個用戶執行無限次的操作。 另外,哪些鏈接? – Jerdog