2016-06-23 19 views
1

Ich versuche, Navigator.Geolocation in meiner Anwendung zugreifen.Geolocation in React Native iOS

Ich habe auch "NSLocationWhenInUseUsageDescription" in meiner info.plist festgelegt.

Aber wenn ich meine App ausführen, wird ein Fehler ausgegeben, der besagt "undefined ist kein Objekt (evaluating navigator.geolocation.getCurrentPosition)".

Hier ist mein Code -

import React, { Component } from 'react'; 
 
import { 
 
    AppRegistry, 
 
    Image, 
 
    ListView, 
 
    StyleSheet, 
 
    Text, 
 
    Navigator, 
 
    TouchableHighlight, 
 
    Alert, 
 
    TouchableOpacity, 
 
    View 
 
} from 'react-native'; 
 
import Spinner from 'react-native-loading-spinner-overlay' 
 
var GiftedSpinner = require('react-native-gifted-spinner'); 
 
var GLOBAL = require('./Globals'); 
 
var stateName; 
 
var latitude; 
 
var longitude; 
 

 
class PersonByLocationPage extends Component { 
 

 
    constructor(props) { 
 
    super(props); 
 
    this.data = this.props.data; 
 

 
    navigator.geolocation.getCurrentPosition(
 
         (position) => { 
 
          var crd = position.coords; 
 
          latitude = crd.latitude; 
 
          longitude = crd.longitude; 
 
          // alert(latitude); 
 
          // alert(longitude); 
 
          }, 
 
          (error) => alert(error.message), 
 
          {enableHighAccuracy: true, timeout: 20000, maximumAge: 1000} 
 
        ); 
 

 

 
    this.REQUEST_URL = 'sample'; 
 

 

 
    this.state = { 
 
     dataSource: new ListView.DataSource({ 
 
     rowHasChanged: (row1, row2) => row1 !== row2, 
 
     }), 
 
     loaded: false, 
 
     networkError: false, 
 
    }; 
 
    }

Kann das, was jemand sagen, ich falsch mache?

+0

Wenn Sie gedebuggt haben , könnten Sie überprüfen, welches Objekt in der navigator.geolocation.getCurrentPosition nicht definiert ist ? Ist es Navigator oder navigator.geolocation? –

+0

Hallo, ich weiß nicht, was das Problem war. Jetzt läuft es perfekt. Und ich habe keine Ahnung warum? –

+0

Und jetzt, Es zeigt den gleichen Fehler, wenn ich App in Gerät ausführen. –

Antwort

1
  1. Ziehen Sie RCTGeolocation.xcodeproj in den Bibliotheksordner.
  2. Klicken Sie im Projektnavigator auf Ihr Projekt.
  3. Klicken Sie unter TARGETS auf YOUR_PROJECT_NAME.
  4. Klicken Sie auf die Registerkarte Build Phases. Klicken Sie in der Phase Link Binary With Libraries
  5. auf das Plus-Symbol, und wählen Sie libRCTGeolocation.a aus der angezeigten Modalliste aus.

Das sollte alles sein, was Sie brauchen. Lassen Sie mich wissen, ob das für Sie funktioniert.