React Nativeからオリジナルページにジャンプ

2015 ワード

温故知新,自分で忘れないように記録しなさい
1.MyIntentModule.Javaクラス
public class MyIntentModule extends ReactContextBaseJavaModule {

  public MyIntentModule(ReactApplicationContext reactContext) {
  super(reactContext);
  }

  @Override
  public String getName() {
  return "IntentModule";
  }

  /**
  *  JS       activity       JS         
  * @param name      Activity class
  * @param params
  */
  @ReactMethod
  public void startActivityFromJS(String name, String params){
  try{
  Activity currentActivity = getCurrentActivity();
  if(null!=currentActivity){
  Class toActivity = Class.forName(name);
  Intent intent = new Intent(currentActivity,toActivity);
  intent.putExtra("params", params);
  currentActivity.startActivity(intent);
  }
  }catch(Exception e){
  throw new JSApplicationIllegalArgumentException(
  "    Activity : "+e.getMessage());
  }
  }
}

2.MyReactPackage.JAvaクラス
public class MyReactPackage implements ReactPackage {
  @Override
  public List createNativeModules(ReactApplicationContext reactContext) {
  return Arrays.asList(
  new MyIntentModule(reactContext)

  );
  }

  @Override
  public List> createJSModules() {
  return Collections.emptyList();
  }

  @Override
  public List createViewManagers(ReactApplicationContext reactContext) {
      return Collections.emptyList();

  }
}

3.MainApplication追加
new MyReactPackage()
4.Activityページを任意に作成
(com.wildwolf.myrn.ThridActivity )

5.index.android.js
import {
...
  NativeModules
  } from 'react-native';
...

  NativeModules.IntentModule.startActivityFromJS("com.wildwolf.myrn.ThridActivity","   JS        .")}>
  Click me.


over