自定义一个本身的Android端react-native模块

 

参考资料自定义 React Native 模块React Native实现一个自定义模块node

在react-native项目中老是会遇到须要用到一些原生的功能,或者第三方模块不能知足本身需求的状况,这时候就须要本身来封装一个模块了。react

在网上找到的不少资料都是copy出来的,因此我决定本身写一篇文章,记录本身在定义原生模块时遇到的一些问题。android

在上面两篇文章中其实讲的很清楚了。git

react-native原生模块其实就是一个android项目加一个npm项目。github

咱们可使用react-native-create-library这个脚手架工具来快速生成一个基础的框架。可是这个脚手架工具是第三方开发者开发的,目前已经有9个月没有更新过了。npm

我本身在用这个脚手架的时候也遇到了一些问题。json

在生成我本身的项目时,尽管我在build.gradle文件中使用的是react-native

implementation "com.facebook.react:react-native:+"

 可是gradle帮我依赖的react-native版本号依然是0.20.1,而我实际项目中引用的react-native版本已是0.59.9了。api

通过一番折磨之后,才发如今maven仓库中,fackbook发布的最新的react-native版本就是0.20.1,不知道这是为何。框架

通常状况下,这个是没什么太大的影响的。只是在编译的时候提示说使用了废弃的方法什么的。可是若是你的项目中正好用到的新的版本的一个api,那么就须要设置一下了。

步骤以下:

  1. 在package.json中定义devDependencies,表示你依赖的react-native版本号
    "devDependencies": {
      "react-native": "^0.59.9"
    },

     

  2. 在build.gradle文件中定义maven仓库,表示从npm仓库中加载react-native
    allprojects {
        repositories {
            mavenLocal()
            google()
            jcenter()
            maven {
                // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
                url "$rootDir/../node_modules/react-native/android"
            }
        }
    }

     

  3. 从新执行gradle,就能够引用最新的react-native版本依赖了。
相关文章
相关标签/搜索