ReactNative与Android原生简单交互

android部分:

1、添加ExampleInterface

public class ExampleInterface extends ReactContextBaseJavaModule {//ReactContextBaseJavaModule继承
    private Context mContext;
    public ExampleInterface(ReactApplicationContext reactContext) {
        super(reactContext);
        mContext = getReactApplicationContext();
    }

    @Override
    public String getName() {
        return "ExampleInterface";//<---此处返回的很重要,需要跟js相对应
    }
//js会调用
    @ReactMethod
    public void handleMessage(String msg) {
        Toast.makeText(mContext,msg,1).show();
    }

2、添加 AnExampleReactPackage 并且继承ReactPackage , 把自定义的module添加到package中
public class AnExampleReactPackage implements ReactPackage {
    @Override
    public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
        List<NativeModule>  nativeModules = new ArrayList<>();
        nativeModules.add(new ExampleInterface(reactContext));
        return nativeModules;
    }

    @Override
    public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
        return Collections.emptyList();
    }
}

3、在MainApplication.java里面把nativeModules添加到list集合
@Override
protected List<ReactPackage> getPackages() {
  return Arrays.<ReactPackage>asList(
      new MainReactPackage(),
          new AnExampleReactPackage()//添加到集合
  );
}

ReactNative部分
4、添加相应的控件
import {
  Platform,
  StyleSheet,
  Text,
  View,
  NativeModules,
    ToastAndroid,
    TouchableHighlight
} from 'react-native';

5、这边我也只是在里面添加了一个点击事件
export default class App extends Component<Props> {
  render() {
    return (
      <View style={styles.container}>
        <TouchableHighlight onPress={()=>NativeModules.ExampleInterface.handleMessage("点击ok")}>
        <Text style={styles.welcome}>
          Welcome to React Native!
        </Text>
        </TouchableHighlight>
        <Text style={styles.instructions}>
          To get started, edit App.js
        </Text>
        <Text style={styles.instructions}>
          {instructions}
        </Text>
      </View>
    );
  }
}

6、重新运行服务器并且安装
PS:第一次发表学习笔记,努力成为技术大神。
分享的代码不知道为什么不能选择免费 代码分享




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值