Можно ли проверить движущуюся активность пользователя, когда приложение находится в фоновом режиме или убито в реакции нативного? - PullRequest
0 голосов
/ 07 мая 2018

Мы работаем над приложением для определения местоположения в режиме реального времени, мы должны выполнять свою работу, когда приложение находится в фоновом режиме, а если оно перемещается, нам нужно узнать местоположение пользователя.

Есть ли какая-либо возможность в реагирующем нативе, чтобы мы могли отслеживать действия пользователя по перемещению (в фоновом и отключенном состояниях) и отслеживать местоположение или запускать фоновое задание?

1 Ответ

0 голосов
/ 27 мая 2018

Попробуйте прослушать изменения AppState, и когда ваше приложение перейдет в фоновый режим, вы должны начать делать то, что вы хотите.

import { AppState } from 'react-native';
import BackgroundTimer from 'react-native-background-timer';


state = {
        appState: AppState.currentState
    }

В componentDidMount используйте это:

AppState.addEventListener('change', this._handleAppStateChange);

In componentWillUnmount:

AppState.removeEventListener('change', this._handleAppStateChange);

Используйте что-то вроде этой функции, и вы получите свой результат, когда приложение будет в фоновом режиме.

_handleAppStateChange = (nextAppState) => {
        if (this.state.appState.match(/inactive|background/) && nextAppState === 'active') {
            console.log('App has come to the foreground!');
        } else {
            console.log('App is in background');
            const interval = BackgroundTimer.setInterval(() => {
                    console.log('listen for location changes here');
                    if (this.state.appState === 'active') {
                        //Stop the interval when AppState goes 
                        //back to active again
                        BackgroundTimer.clearInterval(interval);
                    }
                }, 1000);
          }
        }
        this.setState({ appState: nextAppState });
    }
...