如何在react-native中实现本机模块?

时间:2015-04-10 02:33:18

标签: ios facebook react-native

我正在遵循本指南 http://facebook.github.io/react-native/docs/nativemodulesios.html#content

还有这个网站: http://colinramsay.co.uk/2015/03/27/react-native-simple-native-module.html

但是无论我在哪里添加.h和.m文件我总是得到错误: 未导出类ClassName您是否忘记使用RTC_EXPORT_MODULE()?

即使它来自react-native文档的示例中的相同代码,是否有人可以指导我在哪里添加.h和.m文件并将它们正确地链接到项目? 感谢。

2 个答案:

答案 0 :(得分:2)

原生模块API发生了变化,似乎文档尚未相应更新。从我的文章中的示例来看,SomeString.m应如下所示:

//  SomeString.m
#import "SomeString.h"

@implementation SomeString

RCT_EXPORT_MODULE();

RCT_EXPORT_METHOD(get:(RCTResponseSenderBlock)callback)
{ 
  // Change this depending on what you want to retrieve:
  NSString* someString = @"something";

  callback(@[someString]);
}

@end

这最终得到了所需的结果,您可以像以前一样从JS调用它。看起来这只是刚刚发生的事情:

https://github.com/facebook/react-native/commit/0686b0147c8c8084e4a226b7ea04585362eccea8

答案 1 :(得分:0)

您还可以向要导出的任何方法添加普通RCT_EXPORT();。像魅力一样。