web-dev-qa-db-fra.com

Redémarrez par programme une application native React

Est-il possible de redémarrer par programme une application React Native sans écrire de code natif? 

Par exemple, je sais par la réponse à cette question que je peux redémarrer une application Android avec:

Intent i = getBaseContext().getPackageManager()
         .getLaunchIntentForPackage( getBaseContext().getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);

Puis-je faire la même chose avec React Native?

13
Adam Jakiela

Si vous voulez redémarrer uniquement la partie JS, vous pouvez utiliser React Native Restart Package . Cela fonctionnera à la fois sur Android et iOS.

Si vous voulez redémarrer toute l’application, il n’ya pas de paquet natif de réaction pour le moment. Si vous voulez créer vous-même, cochez le lien suivant

Construction du module Android personnalisé pour React Native

Si vous rencontrez des difficultés pour écrire le code Java de base, vous pouvez générer le passe-partout à l’aide de React Native Create Library

14
Sriraman

En plus de ce qui a été dit ci-dessus, vous pouvez redémarrer l'application à l'aide de Codepush comme ceci:

import CodePush from 'react-native-code-Push';
CodePush.restartApp();

En fait, c'est là que React Native Restart Package a obtenu son code.

7
Mike Martin

Vous pouvez utiliser ReactInstanceManager comme ceci

    final ReactInstanceManager instanceManager = getReactInstanceManager();
    instanceManager.recreateReactContextInBackground();
2
Mohit Goel