2016-01-14 13 views
17

React Nativeアプリがバックエンドに接続できない場合は、[OK]ボタンをクリックして警告を表示します。このようなことが起こった場合、アプリケーションの中には何のポイントもないので、ボタンをクリックするとシャットダウンします。これはどうすればいいですか?React Nativeアプリを終了/シャットダウンするにはどうすればよいですか?

キーがAppRegistryにあると思われますが、ドキュメントは少ししかありません。

答えて

6

今日はこれに対応するネイティブの具体的な方法はありません。あなたは物事のネイティブ側からこれを達成しなければなりません。

さらに、iOS用に開発していますか? Appleは、アプリケーションは自分自身を閉じてはならないと述べています。

+1

それはAndroidアプリだが、おかげで、多分私はちょうど再試行]ボタンにOKボタンを変更し、ユーザーのいずれかが自分で再接続または終了してみましょうよ。 AppRegistryで私の実験を保存してくれてありがとう。 :) – Nolan

+1

これを達成するためのノックアウトのリアクションネイティブな方法があります。ネイティブのシームレスに対応するソリューションがあります。ネイティブモジュールの実装/機能をアンインストールしてください。 apps ... – WiRa

34

Androidの場合、アプリケーションを終了しBackAndroidを使用します。

IOS:

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

BackAndroid.exitApp(); 
+3

'BackAndroid'は' BackHandler'のために廃止されました(https://facebook.github.io/react-native/docs/backhandler.htmlを参照) – Bataleon

5

が呼び出されたときに次のアクションを実行ネイティブモジュールを書く

exit(9); 

アンドロイド:

((YourApplication) self.getApplicationContext()).kill(); 

... EDIT ...

それとも、私が作成したものを使用します。https://www.npmjs.com/package/react-native-exit-app

0

これは私が達成した方法です:

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

私は遅すぎる質問に答えるのですが、しかし、私は選択した方法が誰かを助けるかもしれないと思ったので、私はこの質問に答えています。

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; 

}

関連する問題