diff --git a/RCTBrowser.m b/RCTBrowser.m index 0c86e6e..a47ed1e 100644 --- a/RCTBrowser.m +++ b/RCTBrowser.m @@ -6,7 +6,9 @@ @implementation RCTBrowser RCT_EXPORT_MODULE() -RCT_EXPORT_METHOD(presentUrl:(NSString *)url withOptions:(NSDictionary *)options) { +RCT_EXPORT_METHOD(presentUrl:(NSString *)url + withOptions:(NSDictionary *)options + modalCompletion:(RCTResponseSenderBlock)modalCompletionHandler) { TOWebViewController *webVC = [[TOWebViewController alloc] initWithURLString:url]; @@ -31,8 +33,6 @@ @implementation RCTBrowser webVC.disableContextualPopupMenu = ([obj isEqual: @(YES)]); } else if ([key isEqualToString:@"hideWebViewBoundaries"]) { webVC.hideWebViewBoundaries = ([obj isEqual: @(YES)]); - } else if ([key isEqualToString:@"modalCompletionHandler"]) { - // TODO: turn this into a callback } else if ([key isEqualToString:@"shouldStartLoadRequestHandler"]) { // TODO: turn this into a callback } else if ([key isEqualToString:@"buttonTintColor"]) { @@ -42,6 +42,10 @@ @implementation RCTBrowser } }]; + webVC.modalCompletionHandler = ^(void) { + modalCompletionHandler(@[[NSNull null]]); + }; + UIViewController *rootVC = [[UIApplication sharedApplication] keyWindow].rootViewController; UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:webVC]; diff --git a/index.ios.js b/index.ios.js index 3f39a41..dbacd1b 100644 --- a/index.ios.js +++ b/index.ios.js @@ -10,7 +10,11 @@ var Browser = NativeModules.Browser; var RCTBrowserExport = { open: function(url, options={}) { - Browser.presentUrl(url, options); + Browser.presentUrl(url, options, function(err) { + if (options.modalCompletionHandler) { + options.modalCompletionHandler(); + } + }); }, };