navigator.geolocation未在Android设备中返回正确的位置(react-native)

时间:2017-09-16 07:11:41

标签: react-native react-native-android react-native-maps

我正在尝试通过运行以下代码段来获取当前的地理位置

export default class LocationTracking extends Component {
     constructor(props) {
     super(props); 
     this.state = { latitude: '',
                    longitude: ''
                  };
     }
     componentWillMount() {
         navigator.geolocation.getCurrentPosition(    
                function (position) { 
                   this.setState({ latitude: position.coords.latitude, 
                                  longitude: position.coords.longitude 
                               });
                }.bind(this),
                (error) => console.log(error.message),
                {
                   enableHighAccuracy: true,
                   timeout: 5000
                 }
              );
     }
     render() {
         return (
           <View >
              <MapView
                 style={styles.container}
                 region={{
                 latitude: Number(this.state.latitude),
                 longitude: Number(this.state.longitude),
                 latitudeDelta: 5.12,
                 longitudeDelta: 5.032,
              />                         
           </View>
        );
    }
  }

我在AndroidManifest.xml中设置了如下权限,

 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

然而它总是返回纬度:0,经度:0(默认位置我假设)。相同的代码在模拟器中工作正常,但在我的Android设备中没有。

设备名称:Huwai(Honor 4x) Android版本:6.0.1

我应该在代码中改进哪些内容才能使其在移动设备上运行?

0 个答案:

没有答案