React Native橋接Android模塊-Toast
1.創建模塊類
public class RNManagerModule extends ReactContextBaseJavaModule {
private Context mContext;
public RNManagerModule(ReactApplicationContext reactContext) {
super(reactContext);
mContext = reactContext;
}
@Override
public String getName() {
return "RNManagerModule";
}
// RN調用Android Toast
@ReactMethod
public void RNToast(String msg){
Toast.makeText(mContext,msg,Toast.LENGTH_SHORT).show();
}
}
2.註冊模塊
public class RNPackage implements ReactPackage {
@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
return Collections.emptyList();
}
@Override
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
List<NativeModule> modules=new ArrayList<>();
//將我們創建的類添加進原生模塊列表中
modules.add(new RNManagerModule(reactContext));
return modules;
}
}
3.Android包的註冊
將RNPackage添加到 MainApplication.java 中的 getPackages() 方法中
js調用原生代碼
import { NativeModules } from 'react-native';
<Button
title="調用原生toast"
onPress={() => {
NativeModules.RNManagerModule.RNToast('調用原生方法的Demo');
}}
/>