RN桥接原生安卓 (kt代码)

382 阅读1分钟

1.安卓项目结构

rn版本为0.74

image.png

在android目录下为安卓的项目

在找到Android/src/main/java/com/rnmusic目录下的文件有两个MainActivity与MainApplication

安卓中的Activity相当于小程序中的一个page页面

image.png

之后就是创建两个文件 一个是module一个是page

page类似于vue中的路由,负责添加module。module负责编写具体的原生相关功能(扫码、相机、音视频等)

image.png

package代码如下 主要是两个方法createNativeModules与createViewManagers createViewManagers用于桥接原生组件,createNativeModules桥接整个模块

例如以扫码举例,createViewManagers能与rn页面混用,本质为原生组件(View,Text) createNativeModules需要跳转页面。需要一个承载ui显示的activity

image.png

module中 getName到时候导出的具体原生模块名称

通过@ReactMethod方法确定导出方法的对象方法

最后通过在MainApplication中getPackage()方法中add(模块名称导出)

image.png

然后通过rn的NativeModules模块使用 注意 是异步函数

import {
    ViewNativeModules
  } from 'react-native';
  export const Index = ()=>{
    const {Music} = NativeModules;
    const test = async()=>{
      
    
      const res = await  Music.openGallery()
      console.log(res);//1
    
      
    }
    test()
    return (
        <View>
           
        </View>
    )
}