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

react native 调用Android原生方法

发布时间:2020-12-15 20:40:12 所属栏目:百科 来源:网络整理
导读:来源:https://www.youtube.com/watch?v=WmJpHHmOKM8? 教程:https://www.youtube.com/watch?v=GiUo88TGebs?Breaking Down Bridging in React Native by Peggy Rayzis of Major League Soccer ? ? ? 参考地址:https://www.youtube.com/watch?v=O4CRwJWH3s4

来源:https://www.youtube.com/watch?v=WmJpHHmOKM8?

教程:https://www.youtube.com/watch?v=GiUo88TGebs?Breaking Down Bridging in React Native by Peggy Rayzis of Major League Soccer

?

?


?

参考地址:https://www.youtube.com/watch?v=O4CRwJWH3s4

?

首先使用android studio打开项目

将项目路径切换成,源代码的根路径

在项目的源代码目录加入一个类

类命名

再用同样的方法创建另一个类

在visual studio code打开项目,修改其中一个类

?

?

?

?

?

?

react-native new-library --name MyNativeModule

?

?


?

?

参考地址:React Native调用原生组件

官方地址:https://facebook.github.io/react-native/docs/native-modules-android.html

React Native?调用原生Android方法:

第一步:创建一个类,需要实现于ReactContextBaseJavaModule这个Java的类

public class MyNativeModule extends ReactContextBaseJavaModule {
    private ReactApplicationContext mContext;
    public MyNativeModule(ReactApplicationContext reactContext) {
        super(reactContext);
        mContext = reactContext;
    }
}

?

第二步:该类中,一定需要实现一个getName的方法

    @Override
    public String getName() {
        return MODULE_NAME;
    }

?

第三步:可选的参数:getConstants?方法会将传递给 JavaScript 的常量返回。这个方法的实现并不是必须的,但是却对在 JavaScript 和 Java 中同步的预定义的关键字的值非常重要

  @Override
  public Map<String,Object> getConstants() {
    final Map<String,Object> constants = new HashMap<>();
    constants.put(DURATION_SHORT_KEY,Toast.LENGTH_SHORT);
    constants.put(DURATION_LONG_KEY,Toast.LENGTH_LONG);
    return constants;
  }

?

第四步:注册模块:在使用 Java 的最后一步就是注册这个模块,这将在你的应用包中的?createNativeModules?发生。如果一个模块没有被注册,那么它在 JavaScript 是不可用的。?

class MyReactPackage implements ReactPackage {

  @Override
  public List<NativeModule> createNativeModules(
                              ReactApplicationContext reactContext) {
    List<NativeModule> modules = new ArrayList<>();

    modules.add(new ToastModule(reactContext));

    return modules;
  }

?

?

?


自己操作:

第一步:增加AAR包

?

第二步:增加Android代码

(编辑:李大同)

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

    推荐文章
      热点阅读