如何集成第三方iOS SDK以响应本机

时间:2018-12-24 07:31:39

标签: javascript ios react-native

似乎React Native可以集成iOS项目并将其用作正常的React组件,但是我已经阅读了官方文档,发现没有完整的演示,有没有简单的方法演示如何做开始到结束?

1 个答案:

答案 0 :(得分:2)

您正在寻找的是React Native模块

https://facebook.github.io/react-native/docs/native-modules-ios

在文档中,他们提供了以下示例,您可以按照以下示例进行实施,然后进行修改以适合您的需求。

CalendarManager.h

// CalendarManager.h
#import <React/RCTBridgeModule.h>

@interface CalendarManager : NSObject <RCTBridgeModule>
@end

CalendarManager.m

// CalendarManager.m
#import "CalendarManager.h"
#import <React/RCTLog.h>

@implementation CalendarManager

RCT_EXPORT_MODULE();

RCT_EXPORT_METHOD(addEvent:(NSString *)name location:(NSString *)location)
{
  RCTLogInfo(@"Pretending to create an event %@ at %@", name, location);
}

该示例实际上并没有执行任何操作,只是创建了一个名为CalendarManager.addEvent的方法,您可以从React Native中调用该方法,该方法将使用RCTLog控制台记录一些内容。

故障

  • .h file-将iOS连接到React Native的头文件,除了显示的内容(更改为与模块名称匹配)以外,这里几乎没有其他内容
  • .m file-定义您在JavaScript中调用的方法的模块文件,可以在其中调用SDK方法。
  • @implementation CalendarManager-在这里为模块命名,因此您可以使用NativeModules.CalendarManager
  • 将其导入ReactNative
  • RCT_EXPORT_MODULE()-定义该文件是React Native模块
  • RCT_EXPORT_METHOD()-定义可以从React Native调用的方法。您可以根据需要选择任意数量的

RCT_EXPORT_METHOD()定义中,您可以使用传递的任何参数调用SDK。

讨论参数时,有不同的类型,定义如下:

  
      
  • 字符串(NSString)
  •   
  • 编号(NSInteger,float,double,CGFloat,NSNumber)
  •   
  • 布尔值(布尔值,NSNumber)
  •   此列表中任何类型的
  • array(NSArray)
  •   
  • 带有此列表中任何类型的字符串键和值的对象(NSDictionary)
  •   
  • 功能(RCTResponseSenderBlock)
  •