如何将IBM worklight与react-native app集成?

时间:2016-12-07 06:03:38

标签: react-native ibm-mobilefirst

我们的团队正在Ionic/Cordova使用IBM worklight(7.0)。最近我们有机会尝试 react-native ,我们需要将worklight与应用程序集成。

我们如何将IBM worklight与反应原生应用程序集成?

1 个答案:

答案 0 :(得分:0)

通常,您需要像其他任何项目一样创建React Native项目,并向其添加MobileFirst Native iOS SDK,因为您还要将其添加到任何其他本机iOS项目中(按照以下说明操作:https://mobilefirstplatform.ibmcloud.com/tutorials/en/foundation/7.0/hello-world/configuring-a-native-ios-with-the-mfp-sdk/

您可以在以下博文中找到详细的说明和视频:https://mobilefirstplatform.ibmcloud.com/blog/2015/06/03/react-native/

博客文章确实提到了集成的一个重要方面,需要注意:

  

下面我认为将React Native for iOS与MobileFirst Platform Foundation集成的一个更重要的代码块。代码块是从文件ResourceRequest.m导出到React Native javascript代码的MobileFirst Platform Foundation Adapter调用调用。在这部分代码中,有两个重要的React Native方法。一个是RCT_EXPORT_MODULE();这将允许您将本机类导出到React Native javascript中。另一个是RCT_EXPORT_METHOD(...)这个类显式告诉React公开这个类的方法,以便在React Native javascript中使用。导出下面的特定方法将传递一个名为" path"的路径。还有一个名为"结果的回调。"适配器调用将获取存储为JSON数据的电影列表到特定路径(此路径最终不需要)。然后,该数据作为回调传递到React Native代码中。

#import <Foundation/Foundation.h>
#import "WLResourceRequest.h"
#import "ResourceRequest.h"
@implementation ResourceRequest
RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(getJavaAdapter:(NSString *)path results:(RCTResponseSenderBlock)callback)
{
  NSLog(@"Invoking GET Procedure...");
  NSURL* url = [NSURL URLWithString:@"http://localhost:10080/HelloMobileFirst/adapters/MoviesAdapter/getStories"];
  WLResourceRequest* resourceRequest = [WLResourceRequest requestWithURL:url method:WLHttpMethodGet];
  [resourceRequest sendWithCompletionHandler:^(WLResponse *response, NSError *error) {
    NSString* resultText;
    if(error != nil){
      resultText = @"Invocation failure.";
      resultText = [resultText stringByAppendingString: error.description];
    }
    else{
      resultText = response.responseText;
      callback(@[[NSNull null], resultText]);
    }
  }];
}
@end