From d317d5fc9c61f2ef2baef1cf9a991782943be663 Mon Sep 17 00:00:00 2001 From: yogevbd Date: Mon, 1 Jul 2019 15:48:00 +0300 Subject: [PATCH] Support changing javascript bundle location in runtime --- lib/ios/RNNBridgeManager.h | 2 ++ lib/ios/RNNBridgeManager.m | 4 ++++ lib/ios/ReactNativeNavigation.h | 2 ++ lib/ios/ReactNativeNavigation.m | 4 ++++ 4 files changed, 12 insertions(+) diff --git a/lib/ios/RNNBridgeManager.h b/lib/ios/RNNBridgeManager.h index cf3ecc2d3b2..1918c750485 100644 --- a/lib/ios/RNNBridgeManager.h +++ b/lib/ios/RNNBridgeManager.h @@ -12,4 +12,6 @@ typedef UIViewController * (^RNNExternalViewCreator)(NSDictionary* props, RCTBri @property (readonly, nonatomic, strong) RCTBridge *bridge; +- (void)setJSCodeLocation:(NSURL *)jsCodeLocation; + @end diff --git a/lib/ios/RNNBridgeManager.m b/lib/ios/RNNBridgeManager.m index 1c3798d300c..5d0486a93a0 100644 --- a/lib/ios/RNNBridgeManager.m +++ b/lib/ios/RNNBridgeManager.m @@ -57,6 +57,10 @@ - (instancetype)initWithJsCodeLocation:(NSURL *)jsCodeLocation launchOptions:(NS return self; } +- (void)setJSCodeLocation:(NSURL *)jsCodeLocation { + _jsCodeLocation = jsCodeLocation; +} + - (void)registerExternalComponent:(NSString *)name callback:(RNNExternalViewCreator)callback { [_store registerExternalComponent:name callback:callback]; } diff --git a/lib/ios/ReactNativeNavigation.h b/lib/ios/ReactNativeNavigation.h index c387d38cc47..c7476c5b92a 100644 --- a/lib/ios/ReactNativeNavigation.h +++ b/lib/ios/ReactNativeNavigation.h @@ -16,6 +16,8 @@ typedef UIViewController * (^RNNExternalViewCreator)(NSDictionary* props, RCTBri + (UIViewController *)findViewController:(NSString *)componentId; ++ (void)setJSCodeLocation:(NSURL *)jsCodeLocation; + + (RCTBridge *)getBridge; @end diff --git a/lib/ios/ReactNativeNavigation.m b/lib/ios/ReactNativeNavigation.m index fa671acad8f..e681c2de44c 100644 --- a/lib/ios/ReactNativeNavigation.m +++ b/lib/ios/ReactNativeNavigation.m @@ -36,6 +36,10 @@ + (UIViewController *)findViewController:(NSString *)componentId { return [RNNLayoutManager findComponentForId:componentId]; } ++ (void)setJSCodeLocation:(NSURL *)jsCodeLocation { + [[ReactNativeNavigation sharedInstance].bridgeManager setJSCodeLocation:jsCodeLocation]; +} + # pragma mark - instance + (instancetype) sharedInstance {