2015-07-10 13:18:11 -04:00
|
|
|
//
|
2015-07-14 15:08:02 -04:00
|
|
|
// RCTWebViewManager+WebViewManager.m
|
2015-07-10 13:18:11 -04:00
|
|
|
// Sample2
|
|
|
|
|
//
|
|
|
|
|
// Created by Ali Najafizadeh on 2015-07-10.
|
|
|
|
|
|
2015-07-14 15:08:02 -04:00
|
|
|
#import "RCTWebViewManager+WebViewManager.h"
|
2015-07-10 13:18:11 -04:00
|
|
|
#import "RCTBridge.h"
|
|
|
|
|
#import "RCTSparseArray.h"
|
|
|
|
|
#import "RCTUIManager.h"
|
|
|
|
|
#import "RCTWebView.h"
|
2015-07-14 15:08:02 -04:00
|
|
|
#import "RCTWebView+WebViewBridge.h"
|
2015-07-10 13:18:11 -04:00
|
|
|
|
2015-07-14 15:08:02 -04:00
|
|
|
@implementation RCTWebViewManager (WebViewManager)
|
2015-07-10 13:18:11 -04:00
|
|
|
|
2015-07-13 13:55:56 -04:00
|
|
|
//NOTE
|
|
|
|
|
//DO not include RCT_EXPORT_MODULE() here because RCTWebViewManager already has it and
|
|
|
|
|
//we are using category feature in objective-c
|
|
|
|
|
|
2015-07-14 12:22:25 -04:00
|
|
|
RCT_EXPORT_METHOD(bridgeSetup:(NSNumber *)reactTag)
|
|
|
|
|
{
|
|
|
|
|
[self.bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry) {
|
|
|
|
|
RCTWebView *view = viewRegistry[reactTag];
|
|
|
|
|
if (![view isKindOfClass:[RCTWebView class]]) {
|
|
|
|
|
RCTLogMustFix(@"Invalid view returned from registry, expecting RKWebView, got: %@", view);
|
|
|
|
|
}
|
2015-07-14 15:08:02 -04:00
|
|
|
|
2015-07-14 12:22:25 -04:00
|
|
|
[view bridgeSetup];
|
|
|
|
|
}];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
RCT_EXPORT_METHOD(callbackCleanup:(NSNumber *)reactTag)
|
|
|
|
|
{
|
|
|
|
|
[self.bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry) {
|
|
|
|
|
RCTWebView *view = viewRegistry[reactTag];
|
|
|
|
|
if (![view isKindOfClass:[RCTWebView class]]) {
|
|
|
|
|
RCTLogMustFix(@"Invalid view returned from registry, expecting RKWebView, got: %@", view);
|
|
|
|
|
}
|
2015-07-14 15:08:02 -04:00
|
|
|
|
2015-07-14 12:22:25 -04:00
|
|
|
[view callbackCleanup:reactTag];
|
|
|
|
|
}];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
RCT_EXPORT_METHOD(onMessage:(NSNumber *)reactTag
|
|
|
|
|
withCallback:(RCTResponseSenderBlock)callback)
|
|
|
|
|
{
|
|
|
|
|
[self.bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry) {
|
|
|
|
|
RCTWebView *view = viewRegistry[reactTag];
|
|
|
|
|
if (![view isKindOfClass:[RCTWebView class]]) {
|
|
|
|
|
RCTLogMustFix(@"Invalid view returned from registry, expecting RKWebView, got: %@", view);
|
|
|
|
|
}
|
2015-07-14 15:08:02 -04:00
|
|
|
|
2015-07-14 12:22:25 -04:00
|
|
|
[view onMessageCallback:callback withReactTag:reactTag];
|
|
|
|
|
}];
|
|
|
|
|
}
|
2015-07-10 13:18:11 -04:00
|
|
|
|
2015-07-14 13:53:03 -04:00
|
|
|
RCT_EXPORT_METHOD(send:(NSNumber *)reactTag
|
|
|
|
|
value:(NSString*)message)
|
|
|
|
|
{
|
|
|
|
|
[self.bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry) {
|
|
|
|
|
RCTWebView *view = viewRegistry[reactTag];
|
|
|
|
|
if (![view isKindOfClass:[RCTWebView class]]) {
|
|
|
|
|
RCTLogMustFix(@"Invalid view returned from registry, expecting RKWebView, got: %@", view);
|
|
|
|
|
}
|
|
|
|
|
[view send:message];
|
|
|
|
|
}];
|
|
|
|
|
}
|
|
|
|
|
|
2015-07-10 13:18:11 -04:00
|
|
|
RCT_EXPORT_METHOD(eval:(NSNumber *)reactTag
|
|
|
|
|
value:(NSString*)value)
|
|
|
|
|
{
|
|
|
|
|
[self.bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry) {
|
|
|
|
|
RCTWebView *view = viewRegistry[reactTag];
|
|
|
|
|
if (![view isKindOfClass:[RCTWebView class]]) {
|
|
|
|
|
RCTLogMustFix(@"Invalid view returned from registry, expecting RKWebView, got: %@", view);
|
|
|
|
|
}
|
|
|
|
|
[view eval:value];
|
|
|
|
|
}];
|
|
|
|
|
}
|
|
|
|
|
|
2015-07-13 16:09:24 -04:00
|
|
|
RCT_EXPORT_METHOD(injectBridgeScript:(NSNumber *)reactTag)
|
|
|
|
|
{
|
|
|
|
|
[self.bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry) {
|
|
|
|
|
RCTWebView *view = viewRegistry[reactTag];
|
|
|
|
|
if (![view isKindOfClass:[RCTWebView class]]) {
|
|
|
|
|
RCTLogMustFix(@"Invalid view returned from registry, expecting RKWebView, got: %@", view);
|
|
|
|
|
}
|
2015-07-14 13:53:03 -04:00
|
|
|
[view injectBridgeScript: reactTag];
|
2015-07-13 16:09:24 -04:00
|
|
|
}];
|
|
|
|
|
}
|
|
|
|
|
|
2015-07-10 13:18:11 -04:00
|
|
|
|
|
|
|
|
@end
|