ReactNative-JS 调用原生方法实例代码(转载)
第一步首先创建ReactNative 模块类继承ReactContextBaseJavaModule
package com.mixture;import android.content.Context;import android.widget.Toast;import com.facebook.react.bridge.ReactApplicationContext;import com.facebook.react.bridge.ReactContextBaseJavaModule;import com.facebook.react.bridge.ReactMethod;public class MyNativeModule extends ReactContextBaseJavaModule {  public static final String REACTCLASSNAME = "MyNativeModule";  private Context mContext;  public MyNativeModule(ReactApplicationContext reactContext) {    super(reactContext);    mContext = reactContext;  }  @Override  public String getName() {    return REACTCLASSNAME;  }  /**   * 必须添加反射注解不然会报错   * 这个方法就是ReactNative将要调用的方法,会通过此类名字调用   * @param msg   */  @ReactMethod  public void callNativeMethod(String msg) {    Toast.makeText(mContext, msg, Toast.LENGTH_SHORT).show();  }}| packagecom.mixture;importcom.facebook.react.ReactPackage;importcom.facebook.react.bridge.JavaScriptModule;importcom.facebook.react.bridge.NativeModule;importcom.facebook.react.bridge.ReactApplicationContext;importcom.facebook.react.uimanager.ViewManager;importjava.util.ArrayList;importjava.util.Collections;importjava.util.List;/** * Created by Administrator on 2016/9/22. */publicclassMyReactPackage implementsReactPackage {  @Override  publicList<NativeModule> createNativeModules(ReactApplicationContext reactContext) {    List<NativeModule> modules = newArrayList<>();    modules.add(newMyNativeModule(reactContext));    returnmodules;  }  @Override  publicList<Class<? extendsJavaScriptModule>> createJSModules() {    returnCollections.emptyList();  }  @Override  publicList<ViewManager> createViewManagers(ReactApplicationContext reactContext) {    returnCollections.emptyList();  }} | 
第三步在应用入口注册这个React包管理器
package com.mixture;import android.app.Application;import android.util.Log;import com.facebook.react.ReactApplication;import com.facebook.react.ReactInstanceManager;import com.facebook.react.ReactNativeHost;import com.facebook.react.ReactPackage;import com.facebook.react.shell.MainReactPackage;import java.util.Arrays;import java.util.List;public class MainApplication extends Application implements ReactApplication {  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 MyReactPackage()      );    }  };  @Override  public ReactNativeHost getReactNativeHost() {    return mReactNativeHost;  }}第四步就是在ReactNative中调用react-native中提供一个NativeModules通过模块名字和方法名字进行调用
| /** * Sample React Native App * @flow */importReact, {Component} from 'react';import{  AppRegistry,  StyleSheet,  Text,  View,  NativeModules,} from 'react-native';classMixture extendsComponent {  render() {    return(      <View style={styles.container}>        <Text style={styles.instructions} onPress={() => this.onClick()}>          调用用原生方法        </Text>      </View>    );  }  /**   * 调用原生方法   */  onClick() {    NativeModules.MyNativeModule.callNativeMethod('成功调用原生方法');  }}conststyles = StyleSheet.create({  container: {    flex: 1,    justifyContent: 'center',    alignItems: 'center',    backgroundColor: '#F5FCFF',  },  instructions: {    textAlign: 'center',    color: '#333333',    marginBottom: 5,  },});AppRegistry.registerComponent('Mixture', () => Mixture); | 
ReactNative-JS 调用原生方法实例代码(转载)的更多相关文章
- Xilium.CefGlue利用XHR实现Js调用c#方法
		防外链 博客园原文地址在这里http://www.cnblogs.com/shen6041/p/3442499.html 引 Xilium CefGlue是个不错的cef扩展工程,托管地址在这里 ht ... 
- UIWebView中Html中用JS调用OC方法及OC执行JS代码
		HTML代码: <html> <head> <title>HTML中用JS调用OC方法</title> <meta http-equiv=&quo ... 
- [iOS Hybrid实践:UIWebView中Html中用JS调用OC方法,OC执行JS代码]
		原理: 1.JS调用OC 每次webview执行跳转时都会被iOS给拦截,执行下面函数获得系统允许. 因此可以根据跳转信息转给系统,执行相应功能,比如打开相册等. // 网页中的每一个请求都会被触发 ... 
- iOS开发--JS调用原生OC篇
		JS调用原生OC篇 方式一(反正我不用) 第一种方式是用JS发起一个假的URL请求,然后利用UIWebView的代理方法拦截这次请求,然后再做相应的处理. 我写了一个简单的HTML网页和一个btn点击 ... 
- JS调用OC方法并传值,OC调用JS方法并传值////////////////////////zz
		iOS开发-基于原生JS与OC方法互相调用并传值(附HTML代码) 最近项目里面有有个商品活动界面,要与web端传值,将用户在网页点击的商品id 传给客户端,也就是js交互,其实再说明白一点 ... 
- 在WebBrowser控件使用js调用C#方法
		有时我们需要在WebBrowser控件中嵌入了网页,然后通过html页面调用后台方法,如何实现呢?其实很简单,主要有三步: 在被调用方法所属的类上加上[ComVisible(true)]标签,意思就是 ... 
- js调用android本地java代码
		js调用android本地java代码 当在Android上使用WebView控件开发一个Web应用时,可以创建一个通过Javascript调用Android端java代码的接口.也就是可以通过Jav ... 
- JS调用Silverlight方法拾遗
		在最近做的物联网项目中,需要利用封装过的Silverlight刻度控件显示温度,湿度,二氧化碳浓度等值.由于最新的数据是通过js ajax获取的,所以需要把这些数据传递给silverlight显示,这 ... 
- js调用后台方法(如果你能容忍执行的后台方法变成一个常量)
		最近一直在做一个电话拨号的系统,系统不大,但是做的时间有点长了.其中用到了一个技术:js调用后台方法.解决这个问题花了不少时间,现如今仍然还有些不明白的地方,今天跟大家分享一下.真正明白的同学欢迎指正 ... 
随机推荐
- luogu2948 滑雪课
			题解里面全是dp的大神本蒟蒻瑟瑟发抖奉上一篇记忆化搜索... 其实嘛,记忆化搜索还是很安全透彻清真人品的,一般递推不好实现dp可以用记忆化搜索 然后本题先预处理一个mint[i]代表当前能力值为i,参 ... 
- Large Writes in Exadata FlashCache
			在 Exadata存储管理软件12.2.1.1.0中,flashcache开始支持复杂排序和大量的hash join产生的临时数据写入flashcache中,而不是直接写入SAS磁盘的tempfile ... 
- Mybatis学习笔记(八) —— Mybatis整合spring
			一.整合思路 1.SqlSessionFactory对象应该放到spring容器中作为单例存在. 2.传统dao的开发方式中,应该从spring容器中获得sqlsession对象. 3.Mapper代 ... 
- git学习---去除版本控制
			本地这样去除文件夹 node_modules 的版本关联:执行:git rm -r --cached "node_modules/"提交: git commit -am 'remo ... 
- 何为 “元组”(Tuple)?
			元组是关系数据库中的基本概念,关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组,每列就是一个属性. 在二维表里,元组也称为记录. 
- Educational Codeforces Round 11 B
			Description Consider 2n rows of the seats in a bus. n rows of the seats on the left and n rows of th ... 
- ssh连接异常
			在平时工作中,有时候需要SSH登陆到别的Linux主机上去,但有时候SSH登陆会被禁止,并弹出如下类似提示: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ... 
- vue-cli构建项目添加网站ico的logo
			1.网上找一个把图片改成ico格式的网站,把logo改成ico格式,命名favicon.ico 2.将favicon.ico放入static目录 3.在index.html文件中引入 <link ... 
- HTML_DOM学习
			HTML DOM 树 通过ID/类名/标号可以定位HTML元素,然后可用JS改变这些元素的样式内容,并对DOM事件作出反应 对HTML事件的响应: onmousedown 和onmouseup/onc ... 
- python单元测试框架-unittest(三)之用例执行顺序
			执行顺序规则: 测试类或测试方法的数字与字母顺序0~9,A-Z 执行如下脚本,理解用例执行顺序 #coding=utf-8 import unittest class Test1(unittest.T ... 
