javascript - 如何集成第三方iOS sdk react native

标签 javascript ios react-native

貌似react native可以集成iOS项目,作为普通的react组件使用,但是我看了官方文档,没有完整的demo,有没有简单的方法可以实现从头到尾?

最佳答案

你要找的是 React Native Modules

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

在文档中,他们提供了以下示例,您可以遵循并实现,然后进行修改以满足您的需要。

日历管理器.h

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

@interface CalendarManager : NSObject <RCTBridgeModule>
@end

日历管理器.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 文件 - 将 iOS 连接到 React Native 的头文件,除了显示的内容(已更改以匹配您的模块名称)外,这里几乎没有任何内容
  • .m 文件 - 定义您在 JavaScript 中调用的方法的模块文件,可以在其中调用您的 SDK 方法。
  • @implementation CalendarManager - 这是您命名模块的地方,因此您可以使用 NativeModules.CalendarManager
  • 将其导入 ReactNative
  • RCT_EXPORT_MODULE() - 定义此文件是 React Native 模块
  • RCT_EXPORT_METHOD() - 定义您可以从 React Native 调用的方法。您可以拥有任意数量的此类产品。

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

说到参数,有不同的类型定义如下:

  • string (NSString)
  • number (NSInteger, float, double, CGFloat, NSNumber)
  • boolean (BOOL, NSNumber)
  • array (NSArray) of any types from this list
  • object (NSDictionary) with string keys and values of any type from this list
  • function (RCTResponseSenderBlock)

关于javascript - 如何集成第三方iOS sdk react native,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53910500/

相关文章:

ios - React-Native 大量内存使用和仅来自 flatlist iOS 的崩溃

javascript - 使用 jQuery 突出显示焦点输入字段的内容

javascript - 重定向到另一个页面/路线之前确认

javascript - 使用 IE、Jsonp 和 OpenID 如何让数据发送服务器看到客户端已通过身份验证?

ios - 如何在不超过每秒 30 或 40 个请求的情况下使用 CloudKit 和 Swift 保存 1000 条记录

android - axios 发布请求在 React Native ios 中工作但在 android 中不工作

javascript - getElementById 返回空值? (使用 Vue)

ios - iOS 7:从json响应中选择特定对象

iphone - 创建一个圆形骰子并检测当骰子停止滚动时出现在指定位置的结果数字

javascript - import App from '../components/App' 和有什么区别?和 var App = require ('../components/App' );?