2016-06-23 7 views
1

Я пытаюсь получить доступ к navigator.geolocation в своем приложении.Geolocation in React Native iOS

У меня также установлен «NSLocationWhenInUseUsageDescription» в моем info.plist.

Но когда я запускаю свое приложение, он выдает сообщение об ошибке: «undefined не является объектом (оценка navigator.geolocation.getCurrentPosition)».

Вот мой код -

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, 
 
    }; 
 
    }

Может кто-нибудь сказать, что я делаю не так?

+0

Если вы отлажено , вы можете проверить, какой объект в navigator.geolocation.getCurrentPosition не определен ? Это навигатор или navigator.geolocation? –

+0

Привет, я не знаю, в чем проблема. Теперь он работает отлично. И я понятия не имею, почему? –

+0

И теперь, он показывает ту же ошибку, когда я запускаю приложение на устройстве. –

ответ

1
  1. Перетащите RCTGeolocation.xcodeproj в папку Libraries.
  2. Нажмите на свой проект в навигаторе проекта.
  3. Нажмите «YOUR_PROJECT_NAME» в разделе «ЦЕЛИ».
  4. Перейдите на вкладку «Сформировать фазы». В фазе Link Binary With Libraries:
  5. щелкните значок плюса и выберите libRCTGeolocation.a из появившегося модального списка.

Это должно быть все, что вам нужно. Дайте мне знать, если это сработает для вас.