React Nativeからオリジナルページにジャンプ
2015 ワード
温故知新,自分で忘れないように記録しなさい
1.MyIntentModule.Javaクラス
2.MyReactPackage.JAvaクラス
3.MainApplication追加
new MyReactPackage()
4.Activityページを任意に作成
5.index.android.js
over
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