2016-08-15 36 views
18

Her yere baktım ve buna bir cevap bulamıyorum. Bir kullanıcı React Native uygulamasını kapatmaya çalışırken (süreç çalışırken olduğu gibi, uygulamaları el ile yönetir ve çıkıştan çıkmaya zorlarsa) nasıl anlayabilirim. Bu olduğunda çıkış işlevini eklemek istiyorum, ancak bunu algılamanın bir yolunu bulamıyorum. AppState sadece uygulamanın arka plana ne zaman getirildiğini algıladığında görünür.Bir React Native uygulaması kapalı olduğunda nasıl algılanır (askıya alınmaz)?

+0

den çok çözüm bakıldığında. Şimdiye kadar bir şey buldun mu? –

cevap

0

Kullanıcıların uygulamanızı kapatmasını durduramazsınız. Yapabileceğiniz tek şey, uygulamayı kapatmak için (uygulamanızın etkin olmayan durumu) kullanıcıyı yakalamaktır. Bu eylemi yakalamaya ve "Beni kapatma, noooooo!" Mesajını iletmeye çalışabilirsiniz.

+7

Kullanıcının uygulamayı kapatmasını durdurmanın yollarını sormadı. Uygulama yakın etkinliğinin nasıl tespit edileceğini sordu. – Xiaoerge

3

Önceki durumu algılayabilir ve bir sonraki duruma göre karşılaştırabilirsiniz. Uygulamanın, çevrimiçi bulabildiğim noktadan arka plana yaklaştığını, ancak bunun inactive (kapalı) olup olmadığını veya background'da olduğunu algılayabildiğini fark edemezsiniz.

Örnek 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> 
    ); 
    } 

}