我们的团队正在Ionic/Cordova
使用IBM worklight(7.0)
。最近我们有机会尝试 react-native ,我们需要将worklight
与应用程序集成。
我们如何将IBM worklight
与反应原生应用程序集成?
答案 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