2016-01-14 17 views
17

React Native uygulamasının arka ucuna bağlanılamıyorsa, bir Tamam düğmesiyle bir Uyarı gösteriyorum. Böyle bir durumda, uygulamada çalışmaya devam etmenin bir anlamı yoktur, bu yüzden düğmeye tıklandığında onu kapatmak istiyorum. Bunu nasıl yaparım?Bir Yerel Öğe uygulamasından nasıl çıkabilirim/kapatırım?

Anahtarın AppRegistry'de olduğundan şüpheleniyorum, ancak dokümanlar biraz yetersiz.

cevap

6

Bugün bunu yapmaya yerel olarak özgü bir yol yok. Bunu, olayların doğal yönlerinden gerçekleştirmelisiniz.

Ayrıca, iOS için mi geliştiriyorsunuz? Apple, uygulamaların kendilerini kapatmaması gerektiğini belirtti.

+1

Bu bir Android uygulaması var, ama teşekkürler, belki de bir yeniden dene düğmesine Tamam düğmesine değiştirip kullanıcı izin ya yeniden veya kendi başlarına çıkış çalışacağım. AppRegistry ile deneyimlerimi kurtardığın için teşekkürler. :) – Nolan

+1

Bunun için, tepkisiz yerel seamles'e uyan bir çözüm var: Bunu yapabilmek için kutudan çıkma tepkisiz yerel yolu var: android ve ios'u kapatmak için bir yerel modül/işlev uygulanması için aşağıdaki cevabımı inceleyin uygulamalar ... – WiRa

34

Android için, App çıkmak için BackAndroid kullanın:

IOS:

import React, { 
    BackAndroid, 
} from 'react-native'; 

BackAndroid.exitApp(); 
+3

'BackAndroid',' BackHandler' lehine kullanımdan kaldırıldı (bkz. https://facebook.github.io/react-native/docs/backhandler.html) – Bataleon

0

Bu, başardığımız ne kadar geçerli:

componentWillMount() { 
    BackHandler.addEventListener('hardwareBackPress', this.handleBackButtonClick); 
    } 
    componentWillUnmount() { 
    BackHandler.removeEventListener('hardwareBackPress', this.handleBackButtonClick); 
    } 
    handleBackButtonClick() { 
    BackHandler.exitApp(); 
    return true; 
    } 
1

çok geç soruyu yanıtlarken, ama seçtiğim yolun birilerine yardım edebileceğini düşündüm, bu yüzden bu soruya cevap veriyorum.

componentWillMount() { 
    BackHandler.addEventListener('hardwareBackPress', this.backPressed); 
} 

componentWillUnmount() { 
    BackHandler.removeEventListener('hardwareBackPress', this.backPressed);} 

backPressed =() => { 

    Alert.alert(
     'Exit App', 
     'Do you want to exit?', 
     [ 
     {text: 'No', onPress:() => console.log('Cancel Pressed'), style: 'cancel'}, 
     {text: 'Yes', onPress:() => BackHandler.exitApp()}, 
     ], 
     { cancelable: false }) 

return true; 

}

İlgili konular