新项目决定开始使用React Native,故也不得不学习新的知识。React Native简介此不做赘述,官网有详细的介绍。因RN出来的时间还算很短,所以很多东西并不是很完善...比如第三方库的丰富度上...

   拿真实例子举例,我这边的截图功能采用的是react-native-view-snapshot这个第三方截图....但是忘源码一看,大写的懵逼,Android竟然是暂不支持的


好的,那只能做扩展了,首先fork作者的开源项目,在其上编写Android的逻辑代码(实际上Android上的截图逻辑也较为简单,不知道为什么暂不支持),先看文件目录


实际上用到的文件夹只有2个,ReactTestPackage.java和SnapshotterModule.java,那么进入其中看具体实现,首先是ReactTestPackage


方法足够简单,只需要在creatNativeModules里将模块注册进去就好了,然后是SnapshotterModule


至于具体的逻辑,不难,唯一需要提的一点就是 uiManager.addUIBlock和View dView = nativeViewHierarchyManager.resolveView(tag);

该段逻辑是为将RN的视图通过tag标识传给native层,并将此tag转化为View视图,从而实现将View视图截屏保留成图片。

最后就是项目的配置问题了,曾经折腾了我好久

在RN项目的配置中,需要在android模块的setting.gradle文件中将这个工程导入(工程模块都在node_modules中),如下

include ':react-native-view-snapshot'project(':react-native-view-snapshot').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-view-snapshot/android')
同时在app目录下的build.gradle文件下将该工程依赖进去

compile project(':react-native-view-snapshot')
做完这些还不够,最后还得在项目的package.json下更改文件路径,毕竟只是我fork的一个版本,不是原来的


如上配置完以后,打开git命令行,执行npm install命名,就会自动从我的仓库去下载安装

附上github地址ZZombiee/react-native-view-snapshot,各位有兴趣的话也可以尝试fork,更改为自己的仓库

欢迎讨论

更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. 读取android手机流量信息
  4. android 使用html5作布局文件: webview跟javascript交互
  5. Android(安卓)多媒体扫描过程(Android(安卓)Media Scanner Proces
  6. android“设置”里的版本号
  7. Android开发环境搭建
  8. Android(安卓)Resource介绍和使用
  9. 2014.01.21 ——— android 关联android-support源码

随机推荐

  1. ArcGIS模型构建器:行内变量的替换(附练习数
  2. 制作一幅带有天地图底图的研究区位图(附练
  3. 零基础如何开始学习 Java?看完这篇从小白
  4. 利用Python在ArcGIS中批量裁剪影像(带重叠
  5. “新内容 新交互”全球视频云创新挑战赛
  6. 5-07单利模式
  7. PHP:PDO预处理机制在防SQL注入的作用/PDO
  8. PHP:PDO->fetch()和fetchAll()遍历,sessio
  9. 【PHP文件操作】文件目录操作基本操作及
  10. 【PHP会话控制】理解会话控制cookie和ses