0.1.18 • Published 5 months ago

react-native-location-track v0.1.18

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

react-native-location-track

A simple React Native library for efficiently logging and tracking user locations in both foreground and background.

Installation

npm install react-native-location-track

or

yarn add react-native-location-track

Required dependencies

npm install react-native-background-timer react-native-geolocation-service

or

yarn add react-native-background-timer react-native-geolocation-service

On Android

One thing to note, for android this library assumes that location permission is already granted by the user, so you have to use PermissionsAndroid to request for permission before making the location request.

add the following to the src/main/AndroidManifest.xml

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

On iOS, you have to add the following to the Info.plist

<key>NSLocationWhenInUseUsageDescription</key>
<string>This app requires access to your location when in use to provide personalized recommendations.</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>This app requires access to your location to track your activities.</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>This app requires access to your location when in use Always.</string>

Usage

Before running your app on iOS, make sure you have CocoaPods installed and run:

cd ios
pod install

Example: Logging and Tracking Coordinates

import React, {useState} from 'react';
import {View, Text, StyleSheet, ScrollView} from 'react-native';
import LocationTracker from 'react-native-location-track';

const App = () => {
  const [locationList, setLocationList] = useState([]);

  const handleLocationUpdate = ({latitude, longitude, appState}) => {
    const newLocationEntry = `${latitude}, ${longitude} (${appState})`;
    console.log('newLocationEntry', newLocationEntry);
    setLocationList(prevList => [...prevList, newLocationEntry]);
  };

  const locationTrackerConfig = {
    interval: 5000, // milliseconds
  };

  return (
    <View style={styles.container}>
      <ScrollView style={styles.scrollView}>
        {locationList.map((entry, index) => (
          <Text key={index}>{entry}</Text>
        ))}
      </ScrollView>
      <LocationTracker
        onLocationChanged={handleLocationUpdate}
        config={locationTrackerConfig}
      />
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    marginTop: 100,
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
  },
  scrollView: {
    flex: 1,
    width: '100%',
  },
});

export default App;

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT


0.1.17

5 months ago

0.1.18

5 months ago

0.1.16

5 months ago

0.1.15

5 months ago

0.1.14

5 months ago

0.1.13

5 months ago

0.1.12

5 months ago

0.1.11

5 months ago

0.1.10

5 months ago

0.1.9

5 months ago

0.1.8

5 months ago

0.1.7

5 months ago

0.1.6

5 months ago

0.1.5

5 months ago

0.1.4

5 months ago

0.1.3

5 months ago

0.1.2

5 months ago

0.1.1

5 months ago

0.1.0

5 months ago

0.0.1

5 months ago