加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

react-native创建原生模块

发布时间:2020-12-15 08:24:15 所属栏目:百科 来源:网络整理
导读:react-native文档未更新,照着文档实现还是坑了不少,记录下基本步骤。 1,继承ReactContextBaseJavaModulea,getName:模块名称b,getConstants:常量映射c,@ReactMethod注解暴露java方法public void show(String message,int duration) { Toast.makeText(get

react-native文档未更新,照着文档实现还是坑了不少,记录下基本步骤。

1,继承ReactContextBaseJavaModule
a,getName:模块名称
b,getConstants:常量映射
c,@ReactMethod注解暴露java方法
public void show(String message,int duration) {
    Toast.makeText(getReactApplicationContext(),message,duration).show();
}
2,注册原生模块
a,提供一个ReactPackage(继承ReactPackage)
b,public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) 
添加原生模块。
    public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
        List<NativeModule> modules = new ArrayList<>(1);
        modules.add(new MyToast(reactContext));
        return modules;
    }
c,注册包(ReactPackage)
1),ReactInstanceManager.addPackage原生实现的ReactPackage;
2),ReactApplication重写getPackages.
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
          new MainReactPackage(),new MyReactPackage()
      );
    }
3,js使用
a,js引入原生模块
var { NativeModules } = require('react-native');
var MyToast = NativeModules.MyToast;
b,调用
MyToast.show('you click me!',MyToast.SHORT);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读