2017-03-17 27 views
4

モバイルデバイス上のクライアントの場所を見つける方法はありますか?たとえば、ユーザーがアプリを開くと、おおよその場所がわかりますか?地理位置なしの国/地域の取得API React-native?

たとえば、ユーザーがサンフランシスコCAから来た場合、そのユーザーがサンフランシスコCAから来たことを知らせるためのタイプ識別子があります。私は実際に郡や一般的な出身地の正確な場所は必要ありません。

私はリファレンスを持っていました:This SO Question 。私たちは何とかReact-nativeで同じように実装できますか?

答えて

22

そのスレッドの答えの1つに基づいて、このようなネイティブ反作用で実装することができます -

import React, { Component } from 'react'; 
import { AppRegistry, StyleSheet, Text, View } from 'react-native'; 

export default class Test extends Component { 
    constructor(props) { 
    super(props); 
    this.state = { 
     countryName: '', 
     regionName: '' 
    }; 
    } 

    componentDidMount() { 
    var url = 'https://freegeoip.net/json/'; 
    fetch(url) 
     .then((response) => response.json()) 
     .then((responseJson) => { 
     //console.log(responseJson); 
     this.setState({ 
      countryName: responseJson.country_name, 
      regionName: responseJson.region_name 
     }); 
     }) 
     .catch((error) => { 
     //console.error(error); 
     }); 
    } 

    render() { 
    return (
     <View style={styles.container}> 
     <Text>Country: {this.state.countryName}</Text> 
     <Text>Region: {this.state.regionName}</Text> 
     </View> 
    ); 
    } 
} 

const styles = StyleSheet.create({ 
    container: { 
    flex: 1, 
    justifyContent: 'center', 
    alignItems: 'center', 
    backgroundColor: '#F5FCFF', 
    }, 
}); 

AppRegistry.registerComponent('Test',() => Test); 
+0

ありがとうございました。 012(応答)=> response.json()を説明してください。 .then((responseJson)=> {'? –

+0

' response.json() 'は応答のJSONデータを返します。 'それで'約束。詳細はこちらhttps://developer.mozilla.org/en-US/docs/Web/API/Body/json – vinayr

+0

ありがとうございました:) –

関連する問題