1. 程式人生 > >react native 呼叫Android原生方法

react native 呼叫Android原生方法

來源: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程式碼