react-native 调用 native 步骤
一 新建一个类 继承 ReactContextBaseJavaModule
首先要Override getName()方法:
@Override
public String getName() {
return "RNToastAndroid";
}
这个方法的返回值就是JavaScript中调用的名称
然后我们可以选择性的覆盖getConstants()方法:
最后我们定义一个React调用的方法:
这个使用了annotation定义的方式必须加上@ReactMethod。
这里的参数只能React Navive定义的参数。
@ReactMethod中传的参数必须是JavaScript和Java对应的。
Boolean -> Bool
Integer -> Number
Double -> Number
Float -> Number
String -> String
Callback -> function
ReadableMap -> Object
ReadableArray -> Array
二 注册ReactPackage
新建一个RNJavaReactPackage 继承 ReactPackage
三 添加ReactPackage
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new RNJavaReactPackage()
);
}
};
四 实现 RaectApplication
public class MainApplication extends Application implements ReactApplication {
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
}
一 新建一个类 继承 ReactContextBaseJavaModule
首先要Override getName()方法:
@Override
public String getName() {
return "RNToastAndroid";
}
这个方法的返回值就是JavaScript中调用的名称
然后我们可以选择性的覆盖getConstants()方法:
最后我们定义一个React调用的方法:
这个使用了annotation定义的方式必须加上@ReactMethod。
这里的参数只能React Navive定义的参数。
@ReactMethod中传的参数必须是JavaScript和Java对应的。
Boolean -> Bool
Integer -> Number
Double -> Number
Float -> Number
String -> String
Callback -> function
ReadableMap -> Object
ReadableArray -> Array
二 注册ReactPackage
新建一个RNJavaReactPackage 继承 ReactPackage
三 添加ReactPackage
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new RNJavaReactPackage()
);
}
};
四 实现 RaectApplication
public class MainApplication extends Application implements ReactApplication {
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
}