React-Native Android – Obtener las variables de la intención
Estoy usando la intención de iniciar mi aplicación React-Native, y estoy tratando de averiguar cómo obtener las variables que pongo en mi intención en el código nativo de reaccionar. ¿Es esto posible desde dentro de reaccionar-nativo o tengo que escribir algún código java para obtenerlo?
El código que utilizo para iniciar la aplicación:
Intent intent = new Intent(this, MainActivity.class); Intent.putExtra("alarm",true); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
¡Gracias!
Pruebe esto para obtener Intent params en la aplicación reaccionar-nativa.
En mi aplicación nativa, utilizo este código:
Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.my.react.app.package"); launchIntent.putExtra("test", "12331"); startActivity(launchIntent);
En el proyecto reactivo-nativo, mi MainActivity.java
public class MainActivity extends ReactActivity { @Override protected String getMainComponentName() { return "FV"; } public static class TestActivityDelegate extends ReactActivityDelegate { private static final String TEST = "test"; private Bundle mInitialProps = null; private final @Nullable Activity mActivity; public TestActivityDelegate(Activity activity, String mainComponentName) { super(activity, mainComponentName); this.mActivity = activity; } @Override protected void onCreate(Bundle savedInstanceState) { Bundle bundle = mActivity.getIntent().getExtras(); if (bundle != null && bundle.containsKey(TEST)) { mInitialProps = new Bundle(); mInitialProps.putString(TEST, bundle.getString(TEST)); } super.onCreate(savedInstanceState); } @Override protected Bundle getLaunchOptions() { return mInitialProps; } } @Override protected ReactActivityDelegate createReactActivityDelegate() { return new TestActivityDelegate(this, getMainComponentName()); } }
En mi primer contenedor consigo el param en esto.
export default class App extends Component { render() { console.log('App props', this.props); //... } }
El ejemplo completo que encontré aquí: http://cmichel.io/how-to-set-initial-props-in-react-native/
Puede pasar los apoyos iniciales como un paquete al tercer parámetro del método startReactApplication
, de la siguiente manera:
Bundle initialProps = new Bundle(); initialProps.putString("alarm", true); mReactRootView.startReactApplication( mReactInstanceManager, "HelloWorld", initialProps );
Vea esta respuesta para más detalles: https://stackoverflow.com/a/34226172/293280