Android引用RN第三方控件,Android和RN互调方式,最近开发心得
“有人住高楼,有人在深沟,有人光万丈,有人一身锈,世人万千种,浮云莫去求,斯人若彩虹,遇上方知有。”
时隔四季,我重新开始了我的文章更新,so do you miss me?
前言
从工作到现在,我是个四年的程序员了,但是觉得自己踩的坑真的是填都填不完。所以决定把我踩的坑,系统性的归纳和记录,所以CSDN,爷回来了。
错了,是干净的爷回来了。
最近开发心得
- 有困难不要慌,问问同行讲讲逻辑,多交流,虽然不能教你咋写代码,但是可以分享思路给你(比如你android开发问ios或者问后端都一样)
- 在遇到陌生的项目时全局搜索很有用,你可以看看这个对象或者功能,在哪里注册,在哪里引用,在哪里实现。总会有灵感的
- 如果真的遇到了你敢想的事情,不要怕,不要怂,先百度看看,是不是真的有这方面的知识或者技能,站在巨人的肩膀上是ok的
- 砥砺前行,顶峰相见。
- 面向CV,面向百度。冲鸭
Android导入RN第三方控件给rn使用
1.下载Node.js
Node.js 下载地址
然后一路确定下一步就行环境变量配置
下载安装完成配置环境后打开命令行界面cmd输入
npm -v
- 出现如下界面就说明安装好了
2.集成例子react-native-wheel-picker
- 地址react-native-wheel-picker GitHub地址,然后cmd输入下面的代码导入
npm i @yz1311/react-native-wheel-picker
导入的文件夹,默认C:\Users\自己的用户名\node_modules
导入成功后如下
然后只留android文件夹把react-native-wheel-picker这个文件夹丢到Android项目中
项目的settings.gradle中添加导入
项目中app的build.gradle中添加导入
在react-native-wheel-picker中build.gradle如果有自己引用第三方rn框架就要换成自己的rn框架
在Application中引用Package方法
3.备注
- 我只有C盘所以node.js没有配置分盘的环境变量
- 至于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互调方式,最近开发心得相关推荐
- 视频教程-Android Material Design 新控件-Android
Android Material Design 新控件 刘志远,北京邮电大学硕士研究生, 北京育华志远科技有限公司创始人, 育华志远教育品牌负责人,育华志远课程体系打造者. 率领团队为互联网行业培训千 ...
- SmartImage图片第三方控件android
1.新建 :SmartImageDemo\app\src\main\res\xml\network_security_config.xml 该配置用于HTTP请求 <?xml version=& ...
- android自定义view获取控件,android 自定义控件View在Activity中使用findByViewId得到结果为null...
转载:http://blog.csdn.net/xiabing082/article/details/48781489 1. 大家常常自定义view,,然后在xml 中添加该view 组件..如果在 ...
- android点击隐藏控件,Android编程实现点击EditText之外的控件隐藏软键盘功能
本文实例讲述了Android编程实现点击EditText之外的控件隐藏软键盘功能.分享给大家供大家参考,具体如下: 工具类 ... public static void hideKeyboard(Co ...
- android中互斥的控件,Android控件之Radiobutton与RadioGroup
RadioButton 是一个单选控件,在一个RadioGroup中,各个RadioButton是互斥的 XML文件: xmlns:tools="http://schemas.android ...
- android自定义选年控件,Android精美日历控件CalendarView自定义使用完全解析
项目github地址 此框架采用组合的方式,各个模块互相独立,可自由采用各种提供的控件组合,完全自定义自己需要的UI,周视图和月视图可通过简单自定义任意自由绘制,不怕美工提需求!!!下面教程将介绍如何 ...
- android 除了webview 浏览器控件,android开发我的新浪微博客户端-OAuth认证过程中用WebView代替原来的系统自带浏览器...
前面的文章的OAuth认证过程在获取oauth_verifier码是是通过调用android系统带的浏览器进行用户授权认证的, 具体见:android开发我的新浪微博客户端-用户授权页面功能篇(3.2 ...
- android bind 自动声明控件,Android注解神器ButterKnife使用说明
阅读本文大概需要5分钟 前言 如果你还在一行一行的手写findViewById的话,只能证明你对新技术的敏感度太差,间接地暴露了你不善于接受新事物的性格特征,太过于因循守旧.按部就班,这对于一个程序员 ...
- android中翻页控件,Android GridView控件分页自定义
上一篇:Android GridView控件自定义中,我们自定义了Android GridView控件. 包名解释: com.yaomei.activity.adapter DEMO使用到的自定义 ...
最新文章
- Kubernetes基于Metrics Server的HPA
- html5新年网页做给父母的,2018春节给父母的简短祝福语
- ALGO-117_蓝桥杯_算法训练_友好数
- 高cpu_再一次生产 CPU 高负载排查实践
- USACO Training Section 1.3混合牛奶 Mixing Milk
- input长度随输入内容动态变化 input光标定位在最右侧
- 正交变换在基下的矩阵都是可逆阵_矩阵分析与应用(一,矩阵基础知识)
- delphi制作上下开幕效果_2019中超联赛揭幕战在深圳举行 现场开幕式亮点多多
- java导出excel 客户端_java如何将导出的excel下载到客户端
- (10)JavaScript学习笔记 - 数组
- 基于PSR-0编码规范开发一套PHP-MVC框架(二)
- ios android 宏,iOS常用宏定义
- Premiere 五套特效转场插件合集 FilmImpact Transition Packs V3.6.11
- 如何免费获取基于公网 IP 的 SSL 证书 (无需域名)
- 常用LDO低压差线性稳压芯片封装型号以及基本电路
- 计算机用户名显示TEMP,Windows 下Temp帐号处理
- 自动化测试和软件测试的区别,自动化测试和手动测试之间的区别
- 小波神经网络(时间序列预测)
- STK。如何规定“视线”的范围
- 苹果8a1660是什么版本_苹果A1660是什么型号?