由于项目需要,需要将iOS开发的SDK集成到React-Native工程中。可以根据官方文档,开发插件。整体思路:iOS原生这边集成SDK后,写个iOS和RN的交互类,暴露给RN ,RN再调用SDK接口跳转到原声页。成功或失败,内部SDK中有回调,通过iOS这边监听的触发通知RN成功或失败。
步骤一:创建RN工程
1、安装:
$ npm install -g yarn react-native-cli
$ npm install -g react-native-create-library
2、创建工程
$ react-native init TestProject
3、编译并运行
$ cd TestProject
$ react-native run-ios
下图就是新建好的文件结构。在AppDelegate.m文件中,已经自动生成好rootViewController,方便用户使用。此外,如果工程名和js文件名有所变动的话,划红线的地方就要同步修改。
图1步骤二:配置工程各类参数和库
将需要的架构加入项目中,并且针对不同的架包,要配置好架包需要的配置文件。
步骤三:RN 和 ios的交互
首先我们在工程中新建一个类TestSDKManager的类,然后.h文件 去实现 “RCTBridgeModule”协议的Objective-C类,如下图
图2其次,编写TestSDKManager.m文件。要实现RCTBridgeModule协议,就得有以下几个步骤:
1、定义宏。RCT_EXPORT_MODULE();在括号中,可以定义自己喜欢的模块名字,方便JavaScript访问模块。如果未填,表示默认用oc类的名字,
2、定义方法。RCT_EXPORT_METHOD()宏用来定义桥接方法,该方法主要是给JavaScript导出需要的方法,供JavaScript调用。
3、回调。回调的方式有几种,此处使用的是Promises方法,在桥接的原声方法后面添加RCTPromiseResolveBlock和RCTPromiseRejectBlock,即可方便的回调。
图3最后,编写js文件,主要实现的方法是调用iOS的sdk,针对iOS的回调进行处理。如下图:首先要引入NativeModules。然后在需要的地方调用ios方法,并且针对回调的情况进行相应的处理。
图4
网友评论