RN发送接收事件--原生模块

     原生模块可以用来进行rn与android之间数据的接收,发送。我们可以通过自定义原生模块访问平台所有能力。

首先通过NativeModules去访问到android层相应模块。
例:var  tools = NativeModules.ToolsModule;获取相应模块。
       android层继承ReactContextBaseJavaModule实现getName()方法,这个方法返回一个字符串名字。(该类必须要在ReactPackage中进行注册)
        
 @Override
     public String getName() {
         return “ToolsModule";
     }

1.进行android层数据请求。
          通过 tools.request(参数, (datas) => {console.log(datas)}); 调用android层方法
          android找到相应模块,调用到request方法,并接收到相应参数(也可以不传参数),在方法中去请求数据,并通过callback.invoke(Object object);把数据传回js层
@ReactMethod
public void request(String 接收参数, final Callback callback) {
    Request request = new Request(new Handler(){
       @Override
       public void handleMessage(Message msg) {
           super.handleMessage(msg);
           callback.invoke(msg.obj.toString());
       }
   });
   request.setStbid(id);
   request.requestParam();
}



2.调用android平台的一些能力。
           通过tools.toast(参数, 时间); 调用android层方法
          去android层,相应模块找到toast方法,接收数据。
@ReactMethod
public void toast(String text, int duration) {
   Toast.makeText(mContext, text, duration).show();
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值