From 0de29728a6d8367339715b21d4d5ed3feb807c01 Mon Sep 17 00:00:00 2001 From: Thibault Malbranche Date: Tue, 18 Sep 2018 18:32:16 +0200 Subject: [PATCH 1/6] Native Changes --- ios/RCTUIWebViewManager.h | 5 -- ios/{RCTUIWebView.h => RNCUIWebView.h} | 10 +-- ios/{RCTUIWebView.m => RNCUIWebView.m} | 6 +- ios/RNCUIWebViewManager.h | 5 ++ ...WebViewManager.m => RNCUIWebViewManager.m} | 58 +++++++-------- ios/{RCTWKWebView.h => RNCWKWebView.h} | 10 +-- ios/{RCTWKWebView.m => RNCWKWebView.m} | 8 +-- ...WebViewManager.h => RNCWKWebViewManager.h} | 2 +- ...WebViewManager.m => RNCWKWebViewManager.m} | 66 ++++++++--------- .../project.pbxproj | 72 +++++++++---------- 10 files changed, 121 insertions(+), 121 deletions(-) delete mode 100644 ios/RCTUIWebViewManager.h rename ios/{RCTUIWebView.h => RNCUIWebView.h} (81%) rename ios/{RCTUIWebView.m => RNCUIWebView.m} (98%) create mode 100644 ios/RNCUIWebViewManager.h rename ios/{RCTUIWebViewManager.m => RNCUIWebViewManager.m} (75%) rename ios/{RCTWKWebView.h => RNCWKWebView.h} (86%) rename ios/{RCTWKWebView.m => RNCWKWebView.m} (98%) rename ios/{RCTWKWebViewManager.h => RNCWKWebViewManager.h} (82%) rename ios/{RCTWKWebViewManager.m => RNCWKWebViewManager.m} (72%) rename ios/{RCTWebView.xcodeproj => RNCWebView.xcodeproj}/project.pbxproj (74%) diff --git a/ios/RCTUIWebViewManager.h b/ios/RCTUIWebViewManager.h deleted file mode 100644 index 34240b0..0000000 --- a/ios/RCTUIWebViewManager.h +++ /dev/null @@ -1,5 +0,0 @@ -#import - -@interface RCTUIWebViewManager : RCTViewManager - -@end diff --git a/ios/RCTUIWebView.h b/ios/RNCUIWebView.h similarity index 81% rename from ios/RCTUIWebView.h rename to ios/RNCUIWebView.h index 0bdd115..c90a031 100644 --- a/ios/RCTUIWebView.h +++ b/ios/RNCUIWebView.h @@ -1,6 +1,6 @@ #import -@class RCTUIWebView; +@class RNCUIWebView; /** * Special scheme used to pass messages to the injectedJavaScript @@ -10,17 +10,17 @@ */ extern NSString *const RNCJSNavigationScheme; -@protocol RCTUIWebViewDelegate +@protocol RNCUIWebViewDelegate -- (BOOL)webView:(RCTUIWebView *)webView +- (BOOL)webView:(RNCUIWebView *)webView shouldStartLoadForRequest:(NSMutableDictionary *)request withCallback:(RCTDirectEventBlock)callback; @end -@interface RCTUIWebView : RCTView +@interface RNCUIWebView : RCTView -@property (nonatomic, weak) id delegate; +@property (nonatomic, weak) id delegate; @property (nonatomic, copy) NSDictionary *source; @property (nonatomic, assign) UIEdgeInsets contentInset; diff --git a/ios/RCTUIWebView.m b/ios/RNCUIWebView.m similarity index 98% rename from ios/RCTUIWebView.m rename to ios/RNCUIWebView.m index 220e3a9..1c565c9 100644 --- a/ios/RCTUIWebView.m +++ b/ios/RNCUIWebView.m @@ -1,4 +1,4 @@ -#import "RCTUIWebView.h" +#import "RNCUIWebView.h" // #import #import @@ -13,7 +13,7 @@ NSString *const RNCJSNavigationScheme = @"react-js-navigation"; static NSString *const kPostMessageHost = @"postMessage"; -@interface RCTUIWebView () +@interface RNCUIWebView () @property (nonatomic, copy) RCTDirectEventBlock onLoadingStart; @property (nonatomic, copy) RCTDirectEventBlock onLoadingFinish; @@ -23,7 +23,7 @@ static NSString *const kPostMessageHost = @"postMessage"; @end -@implementation RCTUIWebView +@implementation RNCUIWebView { UIWebView *_webView; NSString *_injectedJavaScript; diff --git a/ios/RNCUIWebViewManager.h b/ios/RNCUIWebViewManager.h new file mode 100644 index 0000000..892d8c0 --- /dev/null +++ b/ios/RNCUIWebViewManager.h @@ -0,0 +1,5 @@ +#import + +@interface RNCUIWebViewManager : RCTViewManager + +@end diff --git a/ios/RCTUIWebViewManager.m b/ios/RNCUIWebViewManager.m similarity index 75% rename from ios/RCTUIWebViewManager.m rename to ios/RNCUIWebViewManager.m index 09c105e..7b6180d 100644 --- a/ios/RCTUIWebViewManager.m +++ b/ios/RNCUIWebViewManager.m @@ -1,15 +1,15 @@ -#import "RCTUIWebViewManager.h" +#import "RNCUIWebViewManager.h" #import #import #import -#import "RCTUIWebView.h" +#import "RNCUIWebView.h" -@interface RCTUIWebViewManager () +@interface RNCUIWebViewManager () @end -@implementation RCTUIWebViewManager +@implementation RNCUIWebViewManager { NSConditionLock *_shouldStartLoadLock; BOOL _shouldStartLoad; @@ -19,7 +19,7 @@ RCT_EXPORT_MODULE() - (UIView *)view { - RCTUIWebView *webView = [RCTUIWebView new]; + RNCUIWebView *webView = [RNCUIWebView new]; webView.delegate = self; return webView; } @@ -44,10 +44,10 @@ RCT_REMAP_VIEW_PROPERTY(dataDetectorTypes, _webView.dataDetectorTypes, UIDataDet RCT_EXPORT_METHOD(goBack:(nonnull NSNumber *)reactTag) { - [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { - RCTUIWebView *view = viewRegistry[reactTag]; - if (![view isKindOfClass:[RCTUIWebView class]]) { - RCTLogError(@"Invalid view returned from registry, expecting RCTUIWebView, got: %@", view); + [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { + RNCUIWebView *view = viewRegistry[reactTag]; + if (![view isKindOfClass:[RNCUIWebView class]]) { + RCTLogError(@"Invalid view returned from registry, expecting RNCUIWebView, got: %@", view); } else { [view goBack]; } @@ -57,9 +57,9 @@ RCT_EXPORT_METHOD(goBack:(nonnull NSNumber *)reactTag) RCT_EXPORT_METHOD(goForward:(nonnull NSNumber *)reactTag) { [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { - RCTUIWebView *view = viewRegistry[reactTag]; - if (![view isKindOfClass:[RCTUIWebView class]]) { - RCTLogError(@"Invalid view returned from registry, expecting RCTUIWebView, got: %@", view); + RNCUIWebView *view = viewRegistry[reactTag]; + if (![view isKindOfClass:[RNCUIWebView class]]) { + RCTLogError(@"Invalid view returned from registry, expecting RNCUIWebView, got: %@", view); } else { [view goForward]; } @@ -68,10 +68,10 @@ RCT_EXPORT_METHOD(goForward:(nonnull NSNumber *)reactTag) RCT_EXPORT_METHOD(reload:(nonnull NSNumber *)reactTag) { - [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { - RCTUIWebView *view = viewRegistry[reactTag]; - if (![view isKindOfClass:[RCTUIWebView class]]) { - RCTLogError(@"Invalid view returned from registry, expecting RCTUIWebView, got: %@", view); + [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { + RNCUIWebView *view = viewRegistry[reactTag]; + if (![view isKindOfClass:[RNCUIWebView class]]) { + RCTLogError(@"Invalid view returned from registry, expecting RNCUIWebView, got: %@", view); } else { [view reload]; } @@ -80,10 +80,10 @@ RCT_EXPORT_METHOD(reload:(nonnull NSNumber *)reactTag) RCT_EXPORT_METHOD(stopLoading:(nonnull NSNumber *)reactTag) { - [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { - RCTUIWebView *view = viewRegistry[reactTag]; - if (![view isKindOfClass:[RCTUIWebView class]]) { - RCTLogError(@"Invalid view returned from registry, expecting RCTUIWebView, got: %@", view); + [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { + RNCUIWebView *view = viewRegistry[reactTag]; + if (![view isKindOfClass:[RNCUIWebView class]]) { + RCTLogError(@"Invalid view returned from registry, expecting RNCUIWebView, got: %@", view); } else { [view stopLoading]; } @@ -92,10 +92,10 @@ RCT_EXPORT_METHOD(stopLoading:(nonnull NSNumber *)reactTag) RCT_EXPORT_METHOD(postMessage:(nonnull NSNumber *)reactTag message:(NSString *)message) { - [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { - RCTUIWebView *view = viewRegistry[reactTag]; - if (![view isKindOfClass:[RCTUIWebView class]]) { - RCTLogError(@"Invalid view returned from registry, expecting RCTUIWebView, got: %@", view); + [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { + RNCUIWebView *view = viewRegistry[reactTag]; + if (![view isKindOfClass:[RNCUIWebView class]]) { + RCTLogError(@"Invalid view returned from registry, expecting RNCUIWebView, got: %@", view); } else { [view postMessage:message]; } @@ -104,10 +104,10 @@ RCT_EXPORT_METHOD(postMessage:(nonnull NSNumber *)reactTag message:(NSString *)m RCT_EXPORT_METHOD(injectJavaScript:(nonnull NSNumber *)reactTag script:(NSString *)script) { - [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { - RCTUIWebView *view = viewRegistry[reactTag]; - if (![view isKindOfClass:[RCTUIWebView class]]) { - RCTLogError(@"Invalid view returned from registry, expecting RCTUIWebView, got: %@", view); + [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { + RNCUIWebView *view = viewRegistry[reactTag]; + if (![view isKindOfClass:[RNCUIWebView class]]) { + RCTLogError(@"Invalid view returned from registry, expecting RNCUIWebView, got: %@", view); } else { [view injectJavaScript:script]; } @@ -116,7 +116,7 @@ RCT_EXPORT_METHOD(injectJavaScript:(nonnull NSNumber *)reactTag script:(NSString #pragma mark - Exported synchronous methods -- (BOOL)webView:(__unused RCTUIWebView *)webView +- (BOOL)webView:(__unused RNCUIWebView *)webView shouldStartLoadForRequest:(NSMutableDictionary *)request withCallback:(RCTDirectEventBlock)callback { diff --git a/ios/RCTWKWebView.h b/ios/RNCWKWebView.h similarity index 86% rename from ios/RCTWKWebView.h rename to ios/RNCWKWebView.h index 01b1f5e..e9b2cae 100644 --- a/ios/RCTWKWebView.h +++ b/ios/RNCWKWebView.h @@ -9,19 +9,19 @@ #import #import -@class RCTWKWebView; +@class RNCWKWebView; -@protocol RCTWKWebViewDelegate +@protocol RNCWKWebViewDelegate -- (BOOL)webView:(RCTWKWebView *)webView +- (BOOL)webView:(RNCWKWebView *)webView shouldStartLoadForRequest:(NSMutableDictionary *)request withCallback:(RCTDirectEventBlock)callback; @end -@interface RCTWKWebView : RCTView +@interface RNCWKWebView : RCTView -@property (nonatomic, weak) id delegate; +@property (nonatomic, weak) id delegate; @property (nonatomic, copy) NSDictionary *source; @property (nonatomic, assign) BOOL messagingEnabled; @property (nonatomic, copy) NSString *injectedJavaScript; diff --git a/ios/RCTWKWebView.m b/ios/RNCWKWebView.m similarity index 98% rename from ios/RCTWKWebView.m rename to ios/RNCWKWebView.m index 38c89bf..a43a277 100644 --- a/ios/RCTWKWebView.m +++ b/ios/RNCWKWebView.m @@ -5,13 +5,13 @@ * LICENSE file in the root directory of this source tree. */ -#import "RCTWKWebView.h" +#import "RNCWKWebView.h" #import #import static NSString *const MessageHanderName = @"ReactNative"; -@interface RCTWKWebView () +@interface RNCWKWebView () @property (nonatomic, copy) RCTDirectEventBlock onLoadingStart; @property (nonatomic, copy) RCTDirectEventBlock onLoadingFinish; @property (nonatomic, copy) RCTDirectEventBlock onLoadingError; @@ -20,7 +20,7 @@ static NSString *const MessageHanderName = @"ReactNative"; @property (nonatomic, copy) WKWebView *webView; @end -@implementation RCTWKWebView +@implementation RNCWKWebView { UIColor * _savedBackgroundColor; } @@ -206,7 +206,7 @@ static NSString *const MessageHanderName = @"ReactNative"; { [super layoutSubviews]; - // Ensure webview takes the position and dimensions of RCTWKWebView + // Ensure webview takes the position and dimensions of RNCWKWebView _webView.frame = self.bounds; } diff --git a/ios/RCTWKWebViewManager.h b/ios/RNCWKWebViewManager.h similarity index 82% rename from ios/RCTWKWebViewManager.h rename to ios/RNCWKWebViewManager.h index 81145be..4382efa 100644 --- a/ios/RCTWKWebViewManager.h +++ b/ios/RNCWKWebViewManager.h @@ -7,5 +7,5 @@ #import -@interface RCTWKWebViewManager : RCTViewManager +@interface RNCWKWebViewManager : RCTViewManager @end diff --git a/ios/RCTWKWebViewManager.m b/ios/RNCWKWebViewManager.m similarity index 72% rename from ios/RCTWKWebViewManager.m rename to ios/RNCWKWebViewManager.m index a568e88..0a8186f 100644 --- a/ios/RCTWKWebViewManager.m +++ b/ios/RNCWKWebViewManager.m @@ -5,16 +5,16 @@ * LICENSE file in the root directory of this source tree. */ -#import "RCTWKWebViewManager.h" +#import "RNCWKWebViewManager.h" #import #import -#import "RCTWKWebView.h" +#import "RNCWKWebView.h" -@interface RCTWKWebViewManager () +@interface RNCWKWebViewManager () @end -@implementation RCTWKWebViewManager +@implementation RNCWKWebViewManager { NSConditionLock *_shouldStartLoadLock; BOOL _shouldStartLoad; @@ -24,7 +24,7 @@ RCT_EXPORT_MODULE() - (UIView *)view { - RCTWKWebView *webView = [RCTWKWebView new]; + RNCWKWebView *webView = [RNCWKWebView new]; webView.delegate = self; return webView; } @@ -51,34 +51,34 @@ RCT_EXPORT_VIEW_PROPERTY(onMessage, RCTDirectEventBlock) RCT_EXPORT_METHOD(postMessage:(nonnull NSNumber *)reactTag message:(NSString *)message) { - [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { - RCTWKWebView *view = viewRegistry[reactTag]; - if (![view isKindOfClass:[RCTWKWebView class]]) { - RCTLogError(@"Invalid view returned from registry, expecting RCTWebView, got: %@", view); + [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { + RNCWKWebView *view = viewRegistry[reactTag]; + if (![view isKindOfClass:[RNCWKWebView class]]) { + RCTLogError(@"Invalid view returned from registry, expecting RNCWKWebView, got: %@", view); } else { [view postMessage:message]; } }]; } -RCT_CUSTOM_VIEW_PROPERTY(bounces, BOOL, RCTWKWebView) { +RCT_CUSTOM_VIEW_PROPERTY(bounces, BOOL, RNCWKWebView) { view.bounces = json == nil ? true : [RCTConvert BOOL: json]; } -RCT_CUSTOM_VIEW_PROPERTY(scrollEnabled, BOOL, RCTWKWebView) { +RCT_CUSTOM_VIEW_PROPERTY(scrollEnabled, BOOL, RNCWKWebView) { view.scrollEnabled = json == nil ? true : [RCTConvert BOOL: json]; } -RCT_CUSTOM_VIEW_PROPERTY(decelerationRate, CGFloat, RCTWKWebView) { +RCT_CUSTOM_VIEW_PROPERTY(decelerationRate, CGFloat, RNCWKWebView) { view.decelerationRate = json == nil ? UIScrollViewDecelerationRateNormal : [RCTConvert CGFloat: json]; } RCT_EXPORT_METHOD(injectJavaScript:(nonnull NSNumber *)reactTag script:(NSString *)script) { - [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { - RCTWKWebView *view = viewRegistry[reactTag]; - if (![view isKindOfClass:[RCTWKWebView class]]) { - RCTLogError(@"Invalid view returned from registry, expecting RCTWebView, got: %@", view); + [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { + RNCWKWebView *view = viewRegistry[reactTag]; + if (![view isKindOfClass:[RNCWKWebView class]]) { + RCTLogError(@"Invalid view returned from registry, expecting RNCWKWebView, got: %@", view); } else { [view injectJavaScript:script]; } @@ -87,10 +87,10 @@ RCT_EXPORT_METHOD(injectJavaScript:(nonnull NSNumber *)reactTag script:(NSString RCT_EXPORT_METHOD(goBack:(nonnull NSNumber *)reactTag) { - [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { - RCTWKWebView *view = viewRegistry[reactTag]; - if (![view isKindOfClass:[RCTWKWebView class]]) { - RCTLogError(@"Invalid view returned from registry, expecting RCTWebView, got: %@", view); + [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { + RNCWKWebView *view = viewRegistry[reactTag]; + if (![view isKindOfClass:[RNCWKWebView class]]) { + RCTLogError(@"Invalid view returned from registry, expecting RNCWKWebView, got: %@", view); } else { [view goBack]; } @@ -99,10 +99,10 @@ RCT_EXPORT_METHOD(goBack:(nonnull NSNumber *)reactTag) RCT_EXPORT_METHOD(goForward:(nonnull NSNumber *)reactTag) { - [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { - RCTWKWebView *view = viewRegistry[reactTag]; - if (![view isKindOfClass:[RCTWKWebView class]]) { - RCTLogError(@"Invalid view returned from registry, expecting RCTWebView, got: %@", view); + [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { + RNCWKWebView *view = viewRegistry[reactTag]; + if (![view isKindOfClass:[RNCWKWebView class]]) { + RCTLogError(@"Invalid view returned from registry, expecting RNCWKWebView, got: %@", view); } else { [view goForward]; } @@ -111,10 +111,10 @@ RCT_EXPORT_METHOD(goForward:(nonnull NSNumber *)reactTag) RCT_EXPORT_METHOD(reload:(nonnull NSNumber *)reactTag) { - [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { - RCTWKWebView *view = viewRegistry[reactTag]; - if (![view isKindOfClass:[RCTWKWebView class]]) { - RCTLogError(@"Invalid view returned from registry, expecting RCTWebView, got: %@", view); + [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { + RNCWKWebView *view = viewRegistry[reactTag]; + if (![view isKindOfClass:[RNCWKWebView class]]) { + RCTLogError(@"Invalid view returned from registry, expecting RNCWKWebView, got: %@", view); } else { [view reload]; } @@ -123,10 +123,10 @@ RCT_EXPORT_METHOD(reload:(nonnull NSNumber *)reactTag) RCT_EXPORT_METHOD(stopLoading:(nonnull NSNumber *)reactTag) { - [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { - RCTWKWebView *view = viewRegistry[reactTag]; - if (![view isKindOfClass:[RCTWKWebView class]]) { - RCTLogError(@"Invalid view returned from registry, expecting RCTWebView, got: %@", view); + [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { + RNCWKWebView *view = viewRegistry[reactTag]; + if (![view isKindOfClass:[RNCWKWebView class]]) { + RCTLogError(@"Invalid view returned from registry, expecting RNCWKWebView, got: %@", view); } else { [view stopLoading]; } @@ -135,7 +135,7 @@ RCT_EXPORT_METHOD(stopLoading:(nonnull NSNumber *)reactTag) #pragma mark - Exported synchronous methods -- (BOOL) webView:(RCTWKWebView *)webView +- (BOOL) webView:(RNCWKWebView *)webView shouldStartLoadForRequest:(NSMutableDictionary *)request withCallback:(RCTDirectEventBlock)callback { diff --git a/ios/RCTWebView.xcodeproj/project.pbxproj b/ios/RNCWebView.xcodeproj/project.pbxproj similarity index 74% rename from ios/RCTWebView.xcodeproj/project.pbxproj rename to ios/RNCWebView.xcodeproj/project.pbxproj index c0f78d2..6ea3e41 100644 --- a/ios/RCTWebView.xcodeproj/project.pbxproj +++ b/ios/RNCWebView.xcodeproj/project.pbxproj @@ -7,10 +7,10 @@ objects = { /* Begin PBXBuildFile section */ - E914DBF6214474710071092B /* RCTUIWebViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E914DBF3214474710071092B /* RCTUIWebViewManager.m */; }; - E914DBF7214474710071092B /* RCTUIWebView.m in Sources */ = {isa = PBXBuildFile; fileRef = E914DBF4214474710071092B /* RCTUIWebView.m */; }; - E91B351D21446E6C00F9801F /* RCTWKWebViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E91B351B21446E6C00F9801F /* RCTWKWebViewManager.m */; }; - E91B351E21446E6C00F9801F /* RCTWKWebView.m in Sources */ = {isa = PBXBuildFile; fileRef = E91B351C21446E6C00F9801F /* RCTWKWebView.m */; }; + E914DBF6214474710071092B /* RNCUIWebViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E914DBF3214474710071092B /* RNCUIWebViewManager.m */; }; + E914DBF7214474710071092B /* RNCUIWebView.m in Sources */ = {isa = PBXBuildFile; fileRef = E914DBF4214474710071092B /* RNCUIWebView.m */; }; + E91B351D21446E6C00F9801F /* RNCWKWebViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E91B351B21446E6C00F9801F /* RNCWKWebViewManager.m */; }; + E91B351E21446E6C00F9801F /* RNCWKWebView.m in Sources */ = {isa = PBXBuildFile; fileRef = E91B351C21446E6C00F9801F /* RNCWKWebView.m */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -26,15 +26,15 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 134814201AA4EA6300B7C361 /* libRCTWebView.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRCTWebView.a; sourceTree = BUILT_PRODUCTS_DIR; }; - E914DBF2214474710071092B /* RCTUIWebView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTUIWebView.h; sourceTree = ""; }; - E914DBF3214474710071092B /* RCTUIWebViewManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTUIWebViewManager.m; sourceTree = ""; }; - E914DBF4214474710071092B /* RCTUIWebView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTUIWebView.m; sourceTree = ""; }; - E914DBF5214474710071092B /* RCTUIWebViewManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTUIWebViewManager.h; sourceTree = ""; }; - E91B351921446E6C00F9801F /* RCTWKWebViewManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTWKWebViewManager.h; sourceTree = ""; }; - E91B351A21446E6C00F9801F /* RCTWKWebView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTWKWebView.h; sourceTree = ""; }; - E91B351B21446E6C00F9801F /* RCTWKWebViewManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTWKWebViewManager.m; sourceTree = ""; }; - E91B351C21446E6C00F9801F /* RCTWKWebView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTWKWebView.m; sourceTree = ""; }; + 134814201AA4EA6300B7C361 /* libRNCWebView.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRNCWebView.a; sourceTree = BUILT_PRODUCTS_DIR; }; + E914DBF2214474710071092B /* RNCUIWebView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNCUIWebView.h; sourceTree = ""; }; + E914DBF3214474710071092B /* RNCUIWebViewManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNCUIWebViewManager.m; sourceTree = ""; }; + E914DBF4214474710071092B /* RNCUIWebView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNCUIWebView.m; sourceTree = ""; }; + E914DBF5214474710071092B /* RNCUIWebViewManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNCUIWebViewManager.h; sourceTree = ""; }; + E91B351921446E6C00F9801F /* RNCWKWebViewManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNCWKWebViewManager.h; sourceTree = ""; }; + E91B351A21446E6C00F9801F /* RNCWKWebView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNCWKWebView.h; sourceTree = ""; }; + E91B351B21446E6C00F9801F /* RNCWKWebViewManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNCWKWebViewManager.m; sourceTree = ""; }; + E91B351C21446E6C00F9801F /* RNCWKWebView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNCWKWebView.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -51,7 +51,7 @@ 134814211AA4EA7D00B7C361 /* Products */ = { isa = PBXGroup; children = ( - 134814201AA4EA6300B7C361 /* libRCTWebView.a */, + 134814201AA4EA6300B7C361 /* libRNCWebView.a */, ); name = Products; sourceTree = ""; @@ -59,14 +59,14 @@ 58B511D21A9E6C8500147676 = { isa = PBXGroup; children = ( - E914DBF2214474710071092B /* RCTUIWebView.h */, - E914DBF4214474710071092B /* RCTUIWebView.m */, - E914DBF5214474710071092B /* RCTUIWebViewManager.h */, - E914DBF3214474710071092B /* RCTUIWebViewManager.m */, - E91B351A21446E6C00F9801F /* RCTWKWebView.h */, - E91B351C21446E6C00F9801F /* RCTWKWebView.m */, - E91B351921446E6C00F9801F /* RCTWKWebViewManager.h */, - E91B351B21446E6C00F9801F /* RCTWKWebViewManager.m */, + E914DBF2214474710071092B /* RNCUIWebView.h */, + E914DBF4214474710071092B /* RNCUIWebView.m */, + E914DBF5214474710071092B /* RNCUIWebViewManager.h */, + E914DBF3214474710071092B /* RNCUIWebViewManager.m */, + E91B351A21446E6C00F9801F /* RNCWKWebView.h */, + E91B351C21446E6C00F9801F /* RNCWKWebView.m */, + E91B351921446E6C00F9801F /* RNCWKWebViewManager.h */, + E91B351B21446E6C00F9801F /* RNCWKWebViewManager.m */, 134814211AA4EA7D00B7C361 /* Products */, ); sourceTree = ""; @@ -74,9 +74,9 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 58B511DA1A9E6C8500147676 /* RCTWebView */ = { + 58B511DA1A9E6C8500147676 /* RNCWebView */ = { isa = PBXNativeTarget; - buildConfigurationList = 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "RCTWebView" */; + buildConfigurationList = 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "RNCWebView" */; buildPhases = ( 58B511D71A9E6C8500147676 /* Sources */, 58B511D81A9E6C8500147676 /* Frameworks */, @@ -86,9 +86,9 @@ ); dependencies = ( ); - name = RCTWebView; + name = RNCWebView; productName = RCTDataManager; - productReference = 134814201AA4EA6300B7C361 /* libRCTWebView.a */; + productReference = 134814201AA4EA6300B7C361 /* libRNCWebView.a */; productType = "com.apple.product-type.library.static"; }; /* End PBXNativeTarget section */ @@ -105,7 +105,7 @@ }; }; }; - buildConfigurationList = 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "RCTWebView" */; + buildConfigurationList = 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "RNCWebView" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; @@ -117,7 +117,7 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 58B511DA1A9E6C8500147676 /* RCTWebView */, + 58B511DA1A9E6C8500147676 /* RNCWebView */, ); }; /* End PBXProject section */ @@ -127,10 +127,10 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - E91B351D21446E6C00F9801F /* RCTWKWebViewManager.m in Sources */, - E914DBF7214474710071092B /* RCTUIWebView.m in Sources */, - E914DBF6214474710071092B /* RCTUIWebViewManager.m in Sources */, - E91B351E21446E6C00F9801F /* RCTWKWebView.m in Sources */, + E91B351D21446E6C00F9801F /* RNCWKWebViewManager.m in Sources */, + E914DBF7214474710071092B /* RNCUIWebView.m in Sources */, + E914DBF6214474710071092B /* RNCUIWebViewManager.m in Sources */, + E91B351E21446E6C00F9801F /* RNCWKWebView.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -229,7 +229,7 @@ ); LIBRARY_SEARCH_PATHS = "$(inherited)"; OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = RCTWebView; + PRODUCT_NAME = RNCWebView; SKIP_INSTALL = YES; }; name = Debug; @@ -245,7 +245,7 @@ ); LIBRARY_SEARCH_PATHS = "$(inherited)"; OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = RCTWebView; + PRODUCT_NAME = RNCWebView; SKIP_INSTALL = YES; }; name = Release; @@ -253,7 +253,7 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "RCTWebView" */ = { + 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "RNCWebView" */ = { isa = XCConfigurationList; buildConfigurations = ( 58B511ED1A9E6C8500147676 /* Debug */, @@ -262,7 +262,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "RCTWebView" */ = { + 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "RNCWebView" */ = { isa = XCConfigurationList; buildConfigurations = ( 58B511F01A9E6C8500147676 /* Debug */, From 2444940540cc2a9162ddd8895e1bdee6251de36c Mon Sep 17 00:00:00 2001 From: Thibault Malbranche Date: Tue, 18 Sep 2018 18:33:06 +0200 Subject: [PATCH 2/6] Last native change --- ios/RCTWebView.xcworkspace/contents.xcworkspacedata | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ios/RCTWebView.xcworkspace/contents.xcworkspacedata b/ios/RCTWebView.xcworkspace/contents.xcworkspacedata index 7516567..68c336e 100644 --- a/ios/RCTWebView.xcworkspace/contents.xcworkspacedata +++ b/ios/RCTWebView.xcworkspace/contents.xcworkspacedata @@ -3,7 +3,6 @@ + location = "group:RNCWebView.xcodeproj"> - \ No newline at end of file From 865009858187b5d64a7801a41381e96be82d3e65 Mon Sep 17 00:00:00 2001 From: Thibault Malbranche Date: Tue, 18 Sep 2018 18:33:22 +0200 Subject: [PATCH 3/6] Revert "Last native change" This reverts commit 2444940540cc2a9162ddd8895e1bdee6251de36c. --- ios/RCTWebView.xcworkspace/contents.xcworkspacedata | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ios/RCTWebView.xcworkspace/contents.xcworkspacedata b/ios/RCTWebView.xcworkspace/contents.xcworkspacedata index 68c336e..7516567 100644 --- a/ios/RCTWebView.xcworkspace/contents.xcworkspacedata +++ b/ios/RCTWebView.xcworkspace/contents.xcworkspacedata @@ -3,6 +3,7 @@ + location = "group:RCTWebView.xcodeproj"> + \ No newline at end of file From 15c529a333f44edb8261359a5933558dd8e8356e Mon Sep 17 00:00:00 2001 From: Thibault Malbranche Date: Tue, 18 Sep 2018 18:33:51 +0200 Subject: [PATCH 4/6] RNCWorkspace --- .../contents.xcworkspacedata | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) rename ios/{RCTWebView.xcworkspace => RNCWebView.xcworkspace}/contents.xcworkspacedata (71%) diff --git a/ios/RCTWebView.xcworkspace/contents.xcworkspacedata b/ios/RNCWebView.xcworkspace/contents.xcworkspacedata similarity index 71% rename from ios/RCTWebView.xcworkspace/contents.xcworkspacedata rename to ios/RNCWebView.xcworkspace/contents.xcworkspacedata index 7516567..68c336e 100644 --- a/ios/RCTWebView.xcworkspace/contents.xcworkspacedata +++ b/ios/RNCWebView.xcworkspace/contents.xcworkspacedata @@ -3,7 +3,6 @@ + location = "group:RNCWebView.xcodeproj"> - \ No newline at end of file From 2dea7b53ce99545a07df98acea4f905db8bb24f2 Mon Sep 17 00:00:00 2001 From: Thibault Malbranche Date: Wed, 19 Sep 2018 00:46:19 +0200 Subject: [PATCH 5/6] RNC changes ios JS --- js/WKWebView.ios.js | 12 ++++++------ js/WebView.ios.js | 29 +++++++++++++++-------------- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/js/WKWebView.ios.js b/js/WKWebView.ios.js index d51ccc0..772fe37 100644 --- a/js/WKWebView.ios.js +++ b/js/WKWebView.ios.js @@ -15,9 +15,9 @@ import { requireNativeComponent } from 'react-native'; import type {DataDetectorTypes} from './WebViewTypes'; -const RCTWKWebView = requireNativeComponent('RCTWKWebView'); +const RNCWKWebView = requireNativeComponent('RNCWKWebView'); -type RCTWKWebViewProps = $ReadOnly<{| +type RNCWKWebViewProps = $ReadOnly<{| allowsInlineMediaPlayback?: ?boolean, mediaPlaybackRequiresUserAction?: ?boolean, dataDetectorTypes?: @@ -25,21 +25,21 @@ type RCTWKWebViewProps = $ReadOnly<{| | $ReadOnlyArray, |}>; -class WKWebView extends React.Component { - componentWillReceiveProps(nextProps: RCTWKWebViewProps) { +class WKWebView extends React.Component { + componentWillReceiveProps(nextProps: RNCWKWebViewProps) { this.showRedboxOnPropChanges(nextProps, 'allowsInlineMediaPlayback'); this.showRedboxOnPropChanges(nextProps, 'mediaPlaybackRequiresUserAction'); this.showRedboxOnPropChanges(nextProps, 'dataDetectorTypes'); } - showRedboxOnPropChanges(nextProps: RCTWKWebViewProps, propName: string) { + showRedboxOnPropChanges(nextProps: RNCWKWebViewProps, propName: string) { if (this.props[propName] !== nextProps[propName]) { console.error(`Changes to property ${propName} do nothing after the initial render.`); } } render() { - return ; + return ; } } diff --git a/js/WebView.ios.js b/js/WebView.ios.js index 1b1c23a..daaa06c 100644 --- a/js/WebView.ios.js +++ b/js/WebView.ios.js @@ -51,11 +51,10 @@ function processDecelerationRate(decelerationRate) { return decelerationRate; } -const RCTUIWebViewManager = NativeModules.UIWebViewManager; -const RCTWKWebViewManager = NativeModules.WKWebViewManager; +const RNCUIWebViewManager = NativeModules.RNCUIWebViewManager; +const RNCWKWebViewManager = NativeModules.RNCWKWebViewManager; const BGWASH = 'rgba(255,255,255,0.8)'; -const RCT_WEBVIEW_REF = 'webview'; const WebViewState = keyMirror({ IDLE: null, @@ -143,6 +142,8 @@ class WebView extends React.Component { startInLoadingState: true, }; + webViewRef = React.createRef(); + UNSAFE_componentWillMount() { if (this.props.startInLoadingState) { this.setState({ viewState: WebViewState.LOADING }); @@ -181,7 +182,7 @@ class WebView extends React.Component { ); } else if (this.state.viewState !== WebViewState.IDLE) { console.error( - 'RCTWebView invalid state encountered: ' + this.state.viewState, + 'RNCWebView invalid state encountered: ' + this.state.viewState, ); } @@ -199,9 +200,9 @@ class WebView extends React.Component { let viewManager = nativeConfig.viewManager; if (this.props.useWebKit) { - viewManager = viewManager || RCTWKWebViewManager; + viewManager = viewManager || RNCWKWebViewManager; } else { - viewManager = viewManager || RCTUIWebViewManager; + viewManager = viewManager || RNCUIWebViewManager; } const compiledWhitelist = [ @@ -247,14 +248,14 @@ class WebView extends React.Component { let NativeWebView = nativeConfig.component; if (this.props.useWebKit) { - NativeWebView = NativeWebView || RCTWKWebView; + NativeWebView = NativeWebView || RNCWKWebView; } else { - NativeWebView = NativeWebView || RCTWebView; + NativeWebView = NativeWebView || RNCUIWebView; } const webView = ( { _getCommands() { if (!this.props.useWebKit) { - return UIManager.RCTWebView.Commands; + return UIManager.RNCUIWebView.Commands; } - return UIManager.RCTWKWebView.Commands; + return UIManager.RNCWKWebView.Commands; } /** @@ -389,7 +390,7 @@ class WebView extends React.Component { * Returns the native `WebView` node. */ getWebViewHandle = () => { - return ReactNative.findNodeHandle(this.refs[RCT_WEBVIEW_REF]); + return ReactNative.findNodeHandle(webViewRef.current); }; _onLoadingStart = (event: WebViewNavigationEvent) => { @@ -451,8 +452,8 @@ class WebView extends React.Component { } } -const RCTWebView = requireNativeComponent('RCTWebView'); -const RCTWKWebView = requireNativeComponent('RCTWKWebView'); +const RNCUIWebView = requireNativeComponent('RNCUIWebView'); +const RNCWKWebView = requireNativeComponent('RNCWKWebView'); const styles = StyleSheet.create({ container: { From 7df0ccd24ea79c7df2a15202d9761a28381d10ed Mon Sep 17 00:00:00 2001 From: Thibault Malbranche Date: Wed, 19 Sep 2018 01:25:02 +0200 Subject: [PATCH 6/6] Updated ref to use react.createRef --- js/WebView.ios.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/WebView.ios.js b/js/WebView.ios.js index daaa06c..1d45d8e 100644 --- a/js/WebView.ios.js +++ b/js/WebView.ios.js @@ -255,7 +255,7 @@ class WebView extends React.Component { const webView = ( { * Returns the native `WebView` node. */ getWebViewHandle = () => { - return ReactNative.findNodeHandle(webViewRef.current); + return ReactNative.findNodeHandle(this.webViewRef.current); }; _onLoadingStart = (event: WebViewNavigationEvent) => {