Отправить приложение React-Native (Expo) на задний план при нажатии кнопки «назад» на Android с чистым JavaScript? - PullRequest
0 голосов
/ 29 декабря 2018

Мне бы хотелось, чтобы кнопка возврата Android отправляла приложение в фоновый режим с использованием чистого JavaScript, но единственные решения, которые мне удалось найти, требуют изменений в Java, и я пока стараюсь избегать извлечения из Expo.

Есть ли способ отправить приложение в фоновый режим, а не выйти из него.

1 Ответ

0 голосов
/ 31 декабря 2018

Вот пример закуски.https://snack.expo.io/@nazrdogan/carefree-beef-jerky При возврате false из Backhandler приложение перейдет в фоновый режим.если вернуть true, вы можете сделать свою собственную логику.

import * as React from 'react';
import { Text, View, StyleSheet, BackHandler } from 'react-native';
import { Constants } from 'expo';

// You can import from local files
import AssetExample from './components/AssetExample';

// or any pure javascript modules available in npm
import { Card, Button } from 'react-native-paper';

export default class App extends React.Component {
  componentDidMount() {
    BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);
  }
  componentWillUnmount() {
    BackHandler.removeEventListener('hardwareBackPress', this.handleBackPress);
  }
  handleBackPress = () => {
    //if you return false. it will goes background
    return false;
  };
  render() {
    return (
      <View style={styles.container}>
        <Text>Test</Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    paddingTop: Constants.statusBarHeight,
    backgroundColor: '#ecf0f1',
    padding: 8,
  },
});
...