js实现界面向原生界面发消息并跳转功能


Posted in Javascript onNovember 22, 2016

本文实例为大家分享了js界面向原生界面发消息并跳转的具体代码,供大家参考,具体内容如下

步骤一
在idea中,打开rn项目下的./Android/app,这个过程需要一点儿时间,可能还需要下载gradle的依赖什么的。

步骤二
跟做原生app没差,我们新建一个TestActivity,简单起见,仅实现如下:

public class TestActivity extends AppCompatActivity {

  private Button mBtGoBack;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);
    mBtGoBack = (Button) findViewById(R.id.bt_go_back);
    mBtGoBack.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
        finish();
      }
    });

  }
}

步骤三
写一个类ExampleInterface extends ReactContextBaseJavaModule,在该类中接收消息。
具体代码:

public class ExampleInterface extends ReactContextBaseJavaModule {

  private ReactApplicationContext mRApplicationContext;

  public ExampleInterface(ReactApplicationContext reactContext) {
    super(reactContext);
    mRApplicationContext = reactContext;
  }

  //RN使用这个名称来调用原生模块的其他函数
  @Override
  public String getName() {
    return "ExampleInterface";
  }
  //必须写@ReactMethod,将其注册为能够被React调用的函数
  @ReactMethod
  public void HandlerMessage(String aMessage){
    Log.d("lt","====receive message from RN==="+aMessage);
     //这部分实现简单的跳转
    Intent intent = new Intent(mRApplicationContext,TestActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    mRApplicationContext.startActivity(intent); 
  }

}

步骤四

实现一个包管理器,并将接收消息的类ExampleInterface,注册进去。
代码如下:

public class AnExampleReactPackage implements ReactPackage {

  @Override
  public List<NativeModule> createNativeModules(ReactApplicationContext reactApplicationContext) {
    List<NativeModule> modules = new ArrayList<>();
    modules.add(new ExampleInterface(reactApplicationContext));
    return modules;
  }

  @Override
  public List<Class<? extends JavaScriptModule>> createJSModules() {
    return Collections.emptyList();
  }

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

步骤五
在MainApplication中添加包管理类AnExampleReactPackage;

@Override
  protected List<ReactPackage> getPackages() {
   return Arrays.<ReactPackage>asList(
     new MainReactPackage(),
     new AnExampleReactPackage()
   );
  }

步骤六
在js界面,发送消息;

buttonPress:function(){
  NativeModules.ExampleInterface.HandlerMessage('test');
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
SlideView 图片滑动(扩展/收缩)展示效果
Aug 01 Javascript
javascript中通过arguments参数伪装方法重载
Oct 08 Javascript
javascript弹出页面回传值的方法
Jan 28 Javascript
谈谈jQuery Ajax用法详解
Nov 27 Javascript
vue实现简单表格组件实例详解
Apr 16 Javascript
JQuery实现图片轮播效果
May 08 jQuery
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
Jun 20 Javascript
webpack踩坑之路图片的路径与打包
Sep 05 Javascript
AngularJS监听ng-repeat渲染完成的两种方法
Jan 16 Javascript
vue 插件的方法代码详解
Jun 06 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
Jul 03 Javascript
JS中封装axios来管控api的2种方式
Sep 11 Javascript
JavaScript面向对象分层思维全面解析
Nov 22 #Javascript
浅析location.href跨窗口调用函数
Nov 22 #Javascript
Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)
Nov 22 #Javascript
AngularJS全局scope与Isolate scope通信用法示例
Nov 22 #Javascript
基于js实现checkbox批量选中操作
Nov 22 #Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
Nov 22 #Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
Nov 22 #Javascript
You might like
ThinkPHP php 框架学习笔记
2009/10/30 PHP
PHP文件注释标记及规范小结
2012/04/01 PHP
php单态设计模式(单例模式)实例
2014/11/18 PHP
php自动获取关键字的方法
2015/01/06 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
2016/01/08 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
javascript iframe中打开文件,并检测iframe存在否
2008/12/28 Javascript
JavaScript 乱码问题
2009/08/06 Javascript
JQuery为textarea添加maxlength属性的代码
2010/04/07 Javascript
JS控制文本框textarea输入字数限制的方法
2013/06/17 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
深入理解requestAnimationFrame的动画循环
2016/09/20 Javascript
JavaScript 计算笛卡尔积实例详解
2016/12/02 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
微信小程序顶部可滚动导航效果
2017/10/31 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
2018/11/10 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
2020/11/12 Javascript
python下函数参数的传递(参数带星号的说明)
2010/09/19 Python
基于scrapy实现的简单蜘蛛采集程序
2015/04/17 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
pip安装py_zipkin时提示的SSL问题对应
2018/12/29 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
2020/04/10 Python
python文件及目录操作代码汇总
2020/07/08 Python
检测浏览器是否支持html5视频的代码
2013/03/28 HTML / CSS
英国最大的在线快递公司之一:ParcelHero
2019/11/04 全球购物
新学期班主任寄语
2014/01/18 职场文书
《阳光》教学反思
2014/02/23 职场文书
企业演讲比赛主持词
2014/03/18 职场文书
《小动物过冬》教学反思
2014/04/17 职场文书
教师师德演讲稿
2014/05/06 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
助人为乐好少年事迹材料
2014/08/18 职场文书
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
详解JVM系列之内存模型
2021/06/10 Javascript
Web应用开发TypeScript使用详解
2022/05/25 Javascript