Home Tutorial React Native React Native – Bài 23 Geolocation (định vị)

React Native – Bài 23 Geolocation (định vị)

3 min read
0
140

Trong chương này, chúng tôi sẽ chỉ cho bạn cách sử dụng Geolocation (định vị).

Bước 1: App.js

import React from 'react'
import GeolocationExample from './geolocation_example.js'

const App = () => {
   return (
      <GeolocationExample />
   )
}
export default App

Bước 2: Định vị địa lý

Bắt đầu bằng cách thiết lập trạng thái ban đầu cho trạng thái đó sẽ giữ vị trí ban đầu và vị trí cuối cùng.

Bây giờ, chúng ta cần lấy vị trí hiện tại của thiết bị khi một thành phần được gắn bằng cách sử dụng navigator.geolocation.getCurrentPosition . Chúng tôi sẽ xâu chuỗi phản hồi để chúng tôi có thể cập nhật trạng thái.

navigator.geolocation.watchPosition được sử dụng để theo dõi vị trí của người dùng. Chúng tôi cũng xóa những người theo dõi trong bước này.

AsyncStorageExample.js

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

class SwichExample extends Component {
   state = {
      initialPosition: 'unknown',
      lastPosition: 'unknown',
   }
   watchID: ?number = null;
   componentDidMount = () => {
      navigator.geolocation.getCurrentPosition(
         (position) => {
            const initialPosition = JSON.stringify(position);
            this.setState({ initialPosition });
         },
         (error) => alert(error.message),
         { enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 }
      );
      this.watchID = navigator.geolocation.watchPosition((position) => {
         const lastPosition = JSON.stringify(position);
         this.setState({ lastPosition });
      });
   }
   componentWillUnmount = () => {
      navigator.geolocation.clearWatch(this.watchID);
   }
   render() {
      return (
         <View style = {styles.container}>
            <Text style = {styles.boldText}>
               Initial position:
            </Text>
            
            <Text>
               {this.state.initialPosition}
            </Text>
            
            <Text style = {styles.boldText}>
               Current position:
            </Text>
            
            <Text>
               {this.state.lastPosition}
            </Text>
         </View>
      )
   }
}
export default SwichExample

const styles = StyleSheet.create ({
   container: {
      flex: 1,
      alignItems: 'center',
      marginTop: 50
   },
   boldText: {
      fontSize: 30,
      color: 'red',
   }
})
Load More Related Articles
Load More By quangvu
  • React Native – Bài 24: AsyncStorage

    AsyncStorage chỉ đơn giản là lưu dữ liệu vào tài liệu trên ổ cứng của điện thoại và do đó …
  • React Native – Bài 22: Alert

    Cũng như ứng dụng web, react native cung cấp một component dùng hiển thị alert (cảnh báo) …
  • React Native – Bài 21: Text

    Text là component dùng hiển thị văn bản ứng dụng. Component này có thể được lồng vào nhau …
Load More In React Native

Check Also

Tự làm web chatGPT đơn giản cho phép dùng nhiều OpenAI key

Trong thời đại công nghệ phát triển như hiện nay, chatbot đang dần trở thành một giải pháp…