“有人住高楼,有人在深沟,有人光万丈,有人一身锈,世人万千种,浮云莫去求,斯人若彩虹,遇上方知有。”

时隔四季,我重新开始了我的文章更新,so do you miss me?

前言

从工作到现在,我是个四年的程序员了,但是觉得自己踩的坑真的是填都填不完。所以决定把我踩的坑,系统性的归纳和记录,所以CSDN,爷回来了。

错了,是干净的爷回来了。

最近开发心得

  1. 有困难不要慌,问问同行讲讲逻辑,多交流,虽然不能教你咋写代码,但是可以分享思路给你(比如你android开发问ios或者问后端都一样)
  2. 在遇到陌生的项目时全局搜索很有用,你可以看看这个对象或者功能,在哪里注册,在哪里引用,在哪里实现。总会有灵感的
  3. 如果真的遇到了你敢想的事情,不要怕,不要怂,先百度看看,是不是真的有这方面的知识或者技能,站在巨人的肩膀上是ok的
  4. 砥砺前行,顶峰相见。
  5. 面向CV,面向百度。冲鸭

Android导入RN第三方控件给rn使用

1.下载Node.js

  1. Node.js 下载地址
    然后一路确定下一步就行

  2. 环境变量配置

  3. 下载安装完成配置环境后打开命令行界面cmd输入

npm -v
  1. 出现如下界面就说明安装好了

2.集成例子react-native-wheel-picker

  1. 地址react-native-wheel-picker GitHub地址,然后cmd输入下面的代码导入
npm i @yz1311/react-native-wheel-picker
  1. 导入的文件夹,默认C:\Users\自己的用户名\node_modules

  2. 导入成功后如下

  3. 然后只留android文件夹把react-native-wheel-picker这个文件夹丢到Android项目中

  4. 项目的settings.gradle中添加导入

  5. 项目中app的build.gradle中添加导入

  6. 在react-native-wheel-picker中build.gradle如果有自己引用第三方rn框架就要换成自己的rn框架

  7. 在Application中引用Package方法

3.备注

  1. 我只有C盘所以node.js没有配置分盘的环境变量
  2. 至于RN那边如何调用,暂时不会,很抱歉,只分享了如何引用的,rn那边的同事是可以引用的

Android和RN互调方式

public class RNDataMain extends LegoRNJavaModule {private static final int REQUEST_CODE = 1;private static Callback mDoneCallback;private static ReactApplicationContext rnContext;public RNDataMain(ReactApplicationContext reactApplicationContext){super(reactApplicationContext);rnContext=reactApplicationContext;//1.Activity活动传替参数创建监听reactApplicationContext.addActivityEventListener(mActivityEventListener);}public static void sendEvent(String eventName, String params){if (rnContext==null) return;//2.主动给rn传替参数rnContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit(eventName,""+params);}//3.上下文异常需主动调用传参方式public static void  addActivityResult ( int requestCode, int resultCode, Intent intent){try {if (requestCode == REQUEST_CODE) {if (mDoneCallback != null) {if (resultCode == Activity.RESULT_CANCELED) {WritableMap map = Arguments.createMap();map.putString("succeed", intent.getExtras().getString("result"));//4.invoke传参mDoneCallback.invoke(map);} else {WritableMap map = Arguments.createMap();map.putString("err", intent.getExtras().getString("result"));mDoneCallback.invoke(map);}}}}catch (Exception e){}}@NonNull@Overridepublic String getName() {return "RNDataMain";}private final ActivityEventListener mActivityEventListener = new BaseActivityEventListener(){@Overridepublic void onActivityResult(Activity activity, int requestCode, int resultCode, Intent intent) {try {if (requestCode == REQUEST_CODE) {if (mDoneCallback != null) {if (resultCode == Activity.RESULT_CANCELED) {WritableMap map = Arguments.createMap();map.putString("succeed", intent.getExtras().getString("result"));mDoneCallback.invoke(map);} else {WritableMap map = Arguments.createMap();map.putString("err", intent.getExtras().getString("result"));mDoneCallback.invoke(map);}}}}catch (Exception e){Log.e("",e.toString());}}};@ReactMethodpublic void startScan(final ReadableMap map, final Callback onDone){mDoneCallback = onDone;//5.再次链接地址,防止上下文被回收,导致主动传参2无效rnContext=getReactApplicationContext();String data= map.hasKey("data") ? map.getString("data") :"";Intent intent = new Intent(getCurrentActivity(), RNActivity.class);intent.putExtra("data", data);getCurrentActivity().startActivityForResult(intent, REQUEST_CODE);}
}

错误不足

请大佬私信指出。(心里默念,我是没错的)

Android引用RN第三方控件,Android和RN互调方式,最近开发心得相关推荐

  1. 视频教程-Android Material Design 新控件-Android

    Android Material Design 新控件 刘志远,北京邮电大学硕士研究生, 北京育华志远科技有限公司创始人, 育华志远教育品牌负责人,育华志远课程体系打造者. 率领团队为互联网行业培训千 ...

  2. SmartImage图片第三方控件android

    1.新建 :SmartImageDemo\app\src\main\res\xml\network_security_config.xml 该配置用于HTTP请求 <?xml version=& ...

  3. android自定义view获取控件,android 自定义控件View在Activity中使用findByViewId得到结果为null...

    转载:http://blog.csdn.net/xiabing082/article/details/48781489 1.  大家常常自定义view,,然后在xml 中添加该view 组件..如果在 ...

  4. android点击隐藏控件,Android编程实现点击EditText之外的控件隐藏软键盘功能

    本文实例讲述了Android编程实现点击EditText之外的控件隐藏软键盘功能.分享给大家供大家参考,具体如下: 工具类 ... public static void hideKeyboard(Co ...

  5. android中互斥的控件,Android控件之Radiobutton与RadioGroup

    RadioButton 是一个单选控件,在一个RadioGroup中,各个RadioButton是互斥的 XML文件: xmlns:tools="http://schemas.android ...

  6. android自定义选年控件,Android精美日历控件CalendarView自定义使用完全解析

    项目github地址 此框架采用组合的方式,各个模块互相独立,可自由采用各种提供的控件组合,完全自定义自己需要的UI,周视图和月视图可通过简单自定义任意自由绘制,不怕美工提需求!!!下面教程将介绍如何 ...

  7. android 除了webview 浏览器控件,android开发我的新浪微博客户端-OAuth认证过程中用WebView代替原来的系统自带浏览器...

    前面的文章的OAuth认证过程在获取oauth_verifier码是是通过调用android系统带的浏览器进行用户授权认证的, 具体见:android开发我的新浪微博客户端-用户授权页面功能篇(3.2 ...

  8. android bind 自动声明控件,Android注解神器ButterKnife使用说明

    阅读本文大概需要5分钟 前言 如果你还在一行一行的手写findViewById的话,只能证明你对新技术的敏感度太差,间接地暴露了你不善于接受新事物的性格特征,太过于因循守旧.按部就班,这对于一个程序员 ...

  9. android中翻页控件,Android GridView控件分页自定义

    上一篇:Android GridView控件自定义中,我们自定义了Android GridView控件. 包名解释: com.yaomei.activity.adapter   DEMO使用到的自定义 ...

最新文章

  1. Kubernetes基于Metrics Server的HPA
  2. html5新年网页做给父母的,2018春节给父母的简短祝福语
  3. ALGO-117_蓝桥杯_算法训练_友好数
  4. 高cpu_再一次生产 CPU 高负载排查实践
  5. USACO Training Section 1.3混合牛奶 Mixing Milk
  6. input长度随输入内容动态变化 input光标定位在最右侧
  7. 正交变换在基下的矩阵都是可逆阵_矩阵分析与应用(一,矩阵基础知识)
  8. delphi制作上下开幕效果_2019中超联赛揭幕战在深圳举行 现场开幕式亮点多多
  9. java导出excel 客户端_java如何将导出的excel下载到客户端
  10. (10)JavaScript学习笔记 - 数组
  11. 基于PSR-0编码规范开发一套PHP-MVC框架(二)
  12. ios android 宏,iOS常用宏定义
  13. Premiere 五套特效转场插件合集 FilmImpact Transition Packs V3.6.11
  14. 如何免费获取基于公网 IP 的 SSL 证书 (无需域名)
  15. 常用LDO低压差线性稳压芯片封装型号以及基本电路
  16. 计算机用户名显示TEMP,Windows 下Temp帐号处理
  17. 自动化测试和软件测试的区别,自动化测试和手动测试之间的区别
  18. 小波神经网络(时间序列预测)
  19. STK。如何规定“视线”的范围
  20. 苹果8a1660是什么版本_苹果A1660是什么型号?

热门文章

  1. 通用供应商认证流程(企业真实流程)
  2. coredns 更新部署
  3. 月薪15000,在大西安的生活现状。
  4. python语言创意绘画-Python turtle库能画出什么好玩的东西?
  5. 拜耳阵列(拜耳马赛克)简介
  6. 用processing制作套圈大小的效果
  7. js获取本月,本周,当日,时间段
  8. 互联网寒冬下拿捏大厂面试?2022最新版的Java面试突击班手册流露,果真一分钱一分货
  9. 高斯过程回归(Gaussian Process Regression, GPR)的理解1——权重空间角度
  10. 计算机网络的八大性能指标,速率、带宽、吞吐量、时延、时延带宽积、往返时间、利用率、丢包率