2016-08-15 16 views
18

私はどこにでも見えて、これに対する答えを見つけることができません。ユーザーが自分のReact Nativeアプリを終了しようとしている(プロセスが実行中で、手動でアプリケーションを管理して強制終了する)ときに、どうすれば検出できますか?これが起こったときにログアウト機能を追加したいと思いますが、それを検出する方法が見つかりません。 AppStateは、アプリがバックグラウンドから持ち込まれたときと外に出たときのみ検出するようです。React Nativeアプリが閉鎖された(停止されていない)ときを検出する方法は?

+0

からあまりにソリューションを探しています。これまでに何かを見つけましたか? –

答えて

0

ユーザーがアプリケーションを終了するのを止めることはできません。 あなたが行うことができるのは、単にアプリケーションを終了するときにユーザーをキャッチすることです(アプリの非アクティブ状態)。あなたはこの行動をキャッチし、 "Do not close me、noooooo!"というメッセージを押してみてください。

+7

彼はユーザーがアプリケーションを終了するのを止める方法を求めなかった。彼はアプリクローズイベントを検出する方法を尋ねました。 – Xiaoerge

3

以前の状態を検出して次の状態と比較できるように見えます。あなたは、私がオンラインで見つけることができるものから、バックグラウンドに入ることをアプリが閉鎖していることを検出することはできませんが、inactive(閉鎖)であるか、backgroundであるかを検出できます。

例はReact Native Docs

import React, {Component} from 'react' 
import {AppState, Text} from 'react-native' 

class AppStateExample extends Component { 

    state = { 
    appState: AppState.currentState 
    } 

    componentDidMount() { 
    AppState.addEventListener('change', this._handleAppStateChange); 
    } 

    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!') 
    } 
    this.setState({appState: nextAppState}); 
    } 

    render() { 
    return (
     <Text>Current state is: {this.state.appState}</Text> 
    ); 
    } 

} 
関連する問題