├── .gitignore ├── AQWebView.ios.js ├── AQWebView.xcodeproj └── project.pbxproj ├── AQWebView ├── AQWebView.h ├── AQWebView.m ├── AQWebViewManager.h └── AQWebViewManager.m ├── LICENSE ├── README.md └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | # xcode noise 2 | build/* 3 | *.pbxuser 4 | *.mode1v3 5 | *.mode2v3 6 | *.perspectivev3 7 | *.xcuserstate 8 | *.xccheckout 9 | project.xcworkspace/ 10 | xcuserdata/ 11 | 12 | # old skool 13 | .svn 14 | 15 | # osx noise 16 | .DS_Store 17 | profile 18 | 19 | # node.js 20 | # 21 | npm-debug.log 22 | node_modules/ 23 | 24 | # CocoaPods 25 | Pods/ 26 | -------------------------------------------------------------------------------- /AQWebView.ios.js: -------------------------------------------------------------------------------- 1 | var React = require('react-native'); 2 | var { requireNativeComponent } = React; 3 | 4 | class WKWebView extends React.Component { 5 | render() { 6 | return ; 7 | } 8 | } 9 | 10 | WKWebView.propTypes = { 11 | url: React.PropTypes.string, 12 | automaticallyAdjustContentInsets: React.PropTypes.bool, 13 | contentInset: React.PropTypes.shape({ 14 | top: React.PropTypes.number, 15 | left: React.PropTypes.number, 16 | bottom: React.PropTypes.number, 17 | right: React.PropTypes.number 18 | }), 19 | }; 20 | 21 | var AQWebView = requireNativeComponent('AQWebView', WKWebView); 22 | 23 | module.exports = WKWebView; 24 | -------------------------------------------------------------------------------- /AQWebView.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 1B461C611BB2360700A57DA9 /* AQWebViewManager.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1B461C601BB2360700A57DA9 /* AQWebViewManager.h */; }; 11 | 1B461C631BB2360700A57DA9 /* AQWebViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B461C621BB2360700A57DA9 /* AQWebViewManager.m */; }; 12 | 1B461C6A1BB2366900A57DA9 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B461C691BB2366900A57DA9 /* UIKit.framework */; }; 13 | 1B461C6C1BB2367C00A57DA9 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B461C6B1BB2367C00A57DA9 /* WebKit.framework */; }; 14 | 1B461C6F1BB23EBF00A57DA9 /* AQWebView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B461C6E1BB23EBF00A57DA9 /* AQWebView.m */; settings = {ASSET_TAGS = (); }; }; 15 | /* End PBXBuildFile section */ 16 | 17 | /* Begin PBXCopyFilesBuildPhase section */ 18 | 1B461C5B1BB2360700A57DA9 /* CopyFiles */ = { 19 | isa = PBXCopyFilesBuildPhase; 20 | buildActionMask = 2147483647; 21 | dstPath = "include/$(PRODUCT_NAME)"; 22 | dstSubfolderSpec = 16; 23 | files = ( 24 | 1B461C611BB2360700A57DA9 /* AQWebViewManager.h in CopyFiles */, 25 | ); 26 | runOnlyForDeploymentPostprocessing = 0; 27 | }; 28 | /* End PBXCopyFilesBuildPhase section */ 29 | 30 | /* Begin PBXFileReference section */ 31 | 1B461C5D1BB2360700A57DA9 /* libAQWebView.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libAQWebView.a; sourceTree = BUILT_PRODUCTS_DIR; }; 32 | 1B461C601BB2360700A57DA9 /* AQWebViewManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AQWebViewManager.h; sourceTree = ""; }; 33 | 1B461C621BB2360700A57DA9 /* AQWebViewManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AQWebViewManager.m; sourceTree = ""; }; 34 | 1B461C691BB2366900A57DA9 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 35 | 1B461C6B1BB2367C00A57DA9 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; 36 | 1B461C6D1BB23EBF00A57DA9 /* AQWebView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AQWebView.h; sourceTree = ""; }; 37 | 1B461C6E1BB23EBF00A57DA9 /* AQWebView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AQWebView.m; sourceTree = ""; }; 38 | /* End PBXFileReference section */ 39 | 40 | /* Begin PBXFrameworksBuildPhase section */ 41 | 1B461C5A1BB2360700A57DA9 /* Frameworks */ = { 42 | isa = PBXFrameworksBuildPhase; 43 | buildActionMask = 2147483647; 44 | files = ( 45 | 1B461C6C1BB2367C00A57DA9 /* WebKit.framework in Frameworks */, 46 | 1B461C6A1BB2366900A57DA9 /* UIKit.framework in Frameworks */, 47 | ); 48 | runOnlyForDeploymentPostprocessing = 0; 49 | }; 50 | /* End PBXFrameworksBuildPhase section */ 51 | 52 | /* Begin PBXGroup section */ 53 | 1B461C541BB2360700A57DA9 = { 54 | isa = PBXGroup; 55 | children = ( 56 | 1B461C6B1BB2367C00A57DA9 /* WebKit.framework */, 57 | 1B461C691BB2366900A57DA9 /* UIKit.framework */, 58 | 1B461C5F1BB2360700A57DA9 /* AQWebView */, 59 | 1B461C5E1BB2360700A57DA9 /* Products */, 60 | ); 61 | sourceTree = ""; 62 | }; 63 | 1B461C5E1BB2360700A57DA9 /* Products */ = { 64 | isa = PBXGroup; 65 | children = ( 66 | 1B461C5D1BB2360700A57DA9 /* libAQWebView.a */, 67 | ); 68 | name = Products; 69 | sourceTree = ""; 70 | }; 71 | 1B461C5F1BB2360700A57DA9 /* AQWebView */ = { 72 | isa = PBXGroup; 73 | children = ( 74 | 1B461C601BB2360700A57DA9 /* AQWebViewManager.h */, 75 | 1B461C621BB2360700A57DA9 /* AQWebViewManager.m */, 76 | 1B461C6D1BB23EBF00A57DA9 /* AQWebView.h */, 77 | 1B461C6E1BB23EBF00A57DA9 /* AQWebView.m */, 78 | ); 79 | path = AQWebView; 80 | sourceTree = ""; 81 | }; 82 | /* End PBXGroup section */ 83 | 84 | /* Begin PBXNativeTarget section */ 85 | 1B461C5C1BB2360700A57DA9 /* AQWebView */ = { 86 | isa = PBXNativeTarget; 87 | buildConfigurationList = 1B461C661BB2360700A57DA9 /* Build configuration list for PBXNativeTarget "AQWebView" */; 88 | buildPhases = ( 89 | 1B461C591BB2360700A57DA9 /* Sources */, 90 | 1B461C5A1BB2360700A57DA9 /* Frameworks */, 91 | 1B461C5B1BB2360700A57DA9 /* CopyFiles */, 92 | ); 93 | buildRules = ( 94 | ); 95 | dependencies = ( 96 | ); 97 | name = AQWebView; 98 | productName = AQWebView; 99 | productReference = 1B461C5D1BB2360700A57DA9 /* libAQWebView.a */; 100 | productType = "com.apple.product-type.library.static"; 101 | }; 102 | /* End PBXNativeTarget section */ 103 | 104 | /* Begin PBXProject section */ 105 | 1B461C551BB2360700A57DA9 /* Project object */ = { 106 | isa = PBXProject; 107 | attributes = { 108 | LastUpgradeCheck = 0700; 109 | ORGANIZATIONNAME = Aqueous; 110 | TargetAttributes = { 111 | 1B461C5C1BB2360700A57DA9 = { 112 | CreatedOnToolsVersion = 7.0; 113 | }; 114 | }; 115 | }; 116 | buildConfigurationList = 1B461C581BB2360700A57DA9 /* Build configuration list for PBXProject "AQWebView" */; 117 | compatibilityVersion = "Xcode 3.2"; 118 | developmentRegion = English; 119 | hasScannedForEncodings = 0; 120 | knownRegions = ( 121 | en, 122 | ); 123 | mainGroup = 1B461C541BB2360700A57DA9; 124 | productRefGroup = 1B461C5E1BB2360700A57DA9 /* Products */; 125 | projectDirPath = ""; 126 | projectRoot = ""; 127 | targets = ( 128 | 1B461C5C1BB2360700A57DA9 /* AQWebView */, 129 | ); 130 | }; 131 | /* End PBXProject section */ 132 | 133 | /* Begin PBXSourcesBuildPhase section */ 134 | 1B461C591BB2360700A57DA9 /* Sources */ = { 135 | isa = PBXSourcesBuildPhase; 136 | buildActionMask = 2147483647; 137 | files = ( 138 | 1B461C631BB2360700A57DA9 /* AQWebViewManager.m in Sources */, 139 | 1B461C6F1BB23EBF00A57DA9 /* AQWebView.m in Sources */, 140 | ); 141 | runOnlyForDeploymentPostprocessing = 0; 142 | }; 143 | /* End PBXSourcesBuildPhase section */ 144 | 145 | /* Begin XCBuildConfiguration section */ 146 | 1B461C641BB2360700A57DA9 /* Debug */ = { 147 | isa = XCBuildConfiguration; 148 | buildSettings = { 149 | ALWAYS_SEARCH_USER_PATHS = NO; 150 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 151 | CLANG_CXX_LIBRARY = "libc++"; 152 | CLANG_ENABLE_MODULES = YES; 153 | CLANG_ENABLE_OBJC_ARC = YES; 154 | CLANG_WARN_BOOL_CONVERSION = YES; 155 | CLANG_WARN_CONSTANT_CONVERSION = YES; 156 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 157 | CLANG_WARN_EMPTY_BODY = YES; 158 | CLANG_WARN_ENUM_CONVERSION = YES; 159 | CLANG_WARN_INT_CONVERSION = YES; 160 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 161 | CLANG_WARN_UNREACHABLE_CODE = YES; 162 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 163 | COPY_PHASE_STRIP = NO; 164 | DEBUG_INFORMATION_FORMAT = dwarf; 165 | ENABLE_STRICT_OBJC_MSGSEND = YES; 166 | ENABLE_TESTABILITY = YES; 167 | GCC_C_LANGUAGE_STANDARD = gnu99; 168 | GCC_DYNAMIC_NO_PIC = NO; 169 | GCC_NO_COMMON_BLOCKS = YES; 170 | GCC_OPTIMIZATION_LEVEL = 0; 171 | GCC_PREPROCESSOR_DEFINITIONS = ( 172 | "DEBUG=1", 173 | "$(inherited)", 174 | ); 175 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 176 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 177 | GCC_WARN_UNDECLARED_SELECTOR = YES; 178 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 179 | GCC_WARN_UNUSED_FUNCTION = YES; 180 | GCC_WARN_UNUSED_VARIABLE = YES; 181 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 182 | MTL_ENABLE_DEBUG_INFO = YES; 183 | ONLY_ACTIVE_ARCH = YES; 184 | SDKROOT = iphoneos; 185 | }; 186 | name = Debug; 187 | }; 188 | 1B461C651BB2360700A57DA9 /* Release */ = { 189 | isa = XCBuildConfiguration; 190 | buildSettings = { 191 | ALWAYS_SEARCH_USER_PATHS = NO; 192 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 193 | CLANG_CXX_LIBRARY = "libc++"; 194 | CLANG_ENABLE_MODULES = YES; 195 | CLANG_ENABLE_OBJC_ARC = YES; 196 | CLANG_WARN_BOOL_CONVERSION = YES; 197 | CLANG_WARN_CONSTANT_CONVERSION = YES; 198 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 199 | CLANG_WARN_EMPTY_BODY = YES; 200 | CLANG_WARN_ENUM_CONVERSION = YES; 201 | CLANG_WARN_INT_CONVERSION = YES; 202 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 203 | CLANG_WARN_UNREACHABLE_CODE = YES; 204 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 205 | COPY_PHASE_STRIP = NO; 206 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 207 | ENABLE_NS_ASSERTIONS = NO; 208 | ENABLE_STRICT_OBJC_MSGSEND = YES; 209 | GCC_C_LANGUAGE_STANDARD = gnu99; 210 | GCC_NO_COMMON_BLOCKS = YES; 211 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 212 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 213 | GCC_WARN_UNDECLARED_SELECTOR = YES; 214 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 215 | GCC_WARN_UNUSED_FUNCTION = YES; 216 | GCC_WARN_UNUSED_VARIABLE = YES; 217 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 218 | MTL_ENABLE_DEBUG_INFO = NO; 219 | SDKROOT = iphoneos; 220 | VALIDATE_PRODUCT = YES; 221 | }; 222 | name = Release; 223 | }; 224 | 1B461C671BB2360700A57DA9 /* Debug */ = { 225 | isa = XCBuildConfiguration; 226 | buildSettings = { 227 | HEADER_SEARCH_PATHS = ( 228 | "$(SRCROOT)/../react-native/React/**", 229 | "$(SRCROOT)/node_modules/react-native/React/**", 230 | ); 231 | OTHER_LDFLAGS = "-ObjC"; 232 | PRODUCT_NAME = "$(TARGET_NAME)"; 233 | SKIP_INSTALL = YES; 234 | }; 235 | name = Debug; 236 | }; 237 | 1B461C681BB2360700A57DA9 /* Release */ = { 238 | isa = XCBuildConfiguration; 239 | buildSettings = { 240 | HEADER_SEARCH_PATHS = ( 241 | "$(SRCROOT)/../react-native/React/**", 242 | "$(SRCROOT)/node_modules/react-native/React/**", 243 | ); 244 | OTHER_LDFLAGS = "-ObjC"; 245 | PRODUCT_NAME = "$(TARGET_NAME)"; 246 | SKIP_INSTALL = YES; 247 | }; 248 | name = Release; 249 | }; 250 | /* End XCBuildConfiguration section */ 251 | 252 | /* Begin XCConfigurationList section */ 253 | 1B461C581BB2360700A57DA9 /* Build configuration list for PBXProject "AQWebView" */ = { 254 | isa = XCConfigurationList; 255 | buildConfigurations = ( 256 | 1B461C641BB2360700A57DA9 /* Debug */, 257 | 1B461C651BB2360700A57DA9 /* Release */, 258 | ); 259 | defaultConfigurationIsVisible = 0; 260 | defaultConfigurationName = Release; 261 | }; 262 | 1B461C661BB2360700A57DA9 /* Build configuration list for PBXNativeTarget "AQWebView" */ = { 263 | isa = XCConfigurationList; 264 | buildConfigurations = ( 265 | 1B461C671BB2360700A57DA9 /* Debug */, 266 | 1B461C681BB2360700A57DA9 /* Release */, 267 | ); 268 | defaultConfigurationIsVisible = 0; 269 | defaultConfigurationName = Release; 270 | }; 271 | /* End XCConfigurationList section */ 272 | }; 273 | rootObject = 1B461C551BB2360700A57DA9 /* Project object */; 274 | } 275 | -------------------------------------------------------------------------------- /AQWebView/AQWebView.h: -------------------------------------------------------------------------------- 1 | #import "RCTView.h" 2 | 3 | @interface AQWebView : RCTView 4 | 5 | @property (nonatomic, strong) NSURL *URL; 6 | @property (nonatomic, assign) UIEdgeInsets contentInset; 7 | @property (nonatomic, assign) BOOL automaticallyAdjustContentInsets; 8 | 9 | - (void)reload; 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /AQWebView/AQWebView.m: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import "AQWebView.h" 4 | #import "RCTAutoInsetsProtocol.h" 5 | 6 | // lots of code from https://github.com/facebook/react-native/blob/master/React/Views/RCTWebView.m 7 | 8 | @interface AQWebView () 9 | @end 10 | 11 | @implementation AQWebView 12 | { 13 | WKWebView *_webView; 14 | UIActivityIndicatorView *_spinner; 15 | UIRefreshControl *_refreshControl; 16 | } 17 | 18 | - (instancetype)initWithFrame:(CGRect)frame 19 | { 20 | if ((self = [super initWithFrame:frame])) { 21 | super.backgroundColor = [UIColor clearColor]; 22 | _automaticallyAdjustContentInsets = YES; 23 | _contentInset = UIEdgeInsetsZero; 24 | 25 | _webView = [[WKWebView alloc] initWithFrame:self.bounds]; 26 | _webView.allowsBackForwardNavigationGestures = YES; 27 | _webView.allowsLinkPreview = YES; 28 | _webView.navigationDelegate = self; 29 | [self addSubview:_webView]; 30 | 31 | _spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 32 | [_spinner setTranslatesAutoresizingMaskIntoConstraints:NO]; 33 | [_spinner startAnimating]; 34 | [_webView addSubview:_spinner]; 35 | 36 | _refreshControl = [[UIRefreshControl alloc] init]; 37 | [_webView.scrollView addSubview:_refreshControl]; 38 | [_refreshControl addTarget:self action:@selector(reload) forControlEvents:UIControlEventValueChanged]; 39 | 40 | [_webView addConstraint:[NSLayoutConstraint constraintWithItem:_spinner 41 | attribute:NSLayoutAttributeCenterX 42 | relatedBy:NSLayoutRelationEqual 43 | toItem:_webView 44 | attribute:NSLayoutAttributeCenterX 45 | multiplier:1 46 | constant:0]]; 47 | 48 | [_webView addConstraint:[NSLayoutConstraint constraintWithItem:_spinner 49 | attribute:NSLayoutAttributeCenterY 50 | relatedBy:NSLayoutRelationEqual 51 | toItem:_webView 52 | attribute:NSLayoutAttributeCenterY 53 | multiplier:1 54 | constant:0]]; 55 | } 56 | return self; 57 | } 58 | 59 | - (void)reload 60 | { 61 | [_webView loadRequest:[NSURLRequest requestWithURL:_webView.URL]]; 62 | } 63 | 64 | - (NSURL *)URL 65 | { 66 | return _webView.URL; 67 | } 68 | 69 | - (void)setURL:(NSURL *)URL 70 | { 71 | [_webView loadRequest:[NSURLRequest requestWithURL:URL]]; 72 | } 73 | 74 | - (void)layoutSubviews 75 | { 76 | [super layoutSubviews]; 77 | _webView.frame = self.bounds; 78 | } 79 | 80 | - (void)setContentInset:(UIEdgeInsets)contentInset 81 | { 82 | _contentInset = contentInset; 83 | [RCTView autoAdjustInsetsForView:self 84 | withScrollView:_webView.scrollView 85 | updateOffset:NO]; 86 | } 87 | 88 | - (void)setBackgroundColor:(UIColor *)backgroundColor 89 | { 90 | CGFloat alpha = CGColorGetAlpha(backgroundColor.CGColor); 91 | self.opaque = _webView.opaque = (alpha == 1.0); 92 | _webView.backgroundColor = backgroundColor; 93 | } 94 | 95 | - (UIColor *)backgroundColor 96 | { 97 | return _webView.backgroundColor; 98 | } 99 | 100 | - (void)refreshContentInset 101 | { 102 | [RCTView autoAdjustInsetsForView:self 103 | withScrollView:_webView.scrollView 104 | updateOffset:YES]; 105 | } 106 | 107 | #pragma mark - WKNavigationDelegate 108 | 109 | -(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation 110 | { 111 | [_spinner stopAnimating]; 112 | [_refreshControl endRefreshing]; 113 | } 114 | 115 | @end 116 | -------------------------------------------------------------------------------- /AQWebView/AQWebViewManager.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "RCTViewManager.h" 3 | 4 | @interface AQWebViewManager : RCTViewManager 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /AQWebView/AQWebViewManager.m: -------------------------------------------------------------------------------- 1 | #import 2 | #import "AQWebViewManager.h" 3 | #import "AQWebView.h" 4 | 5 | #import "RCTBridge.h" 6 | #import "RCTUIManager.h" 7 | #import "RCTWebView.h" 8 | 9 | @implementation AQWebViewManager 10 | 11 | RCT_EXPORT_MODULE() 12 | 13 | - (UIView *) view 14 | { 15 | return [[AQWebView alloc] init]; 16 | } 17 | 18 | RCT_REMAP_VIEW_PROPERTY(url, URL, NSURL); 19 | RCT_EXPORT_VIEW_PROPERTY(contentInset, UIEdgeInsets); 20 | RCT_EXPORT_VIEW_PROPERTY(automaticallyAdjustContentInsets, BOOL); 21 | 22 | RCT_EXPORT_METHOD(reload:(nonnull NSNumber *)reactTag) 23 | { 24 | [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { 25 | AQWebView *view = viewRegistry[reactTag]; 26 | if (![view isKindOfClass:[AQWebView class]]) { 27 | RCTLogError(@"Invalid view returned from registry, expecting RCTWebView, got: %@", view); 28 | } else { 29 | [view reload]; 30 | } 31 | }]; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Nick Quaranto 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation 5 | files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, 7 | copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the 9 | Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # react-native-wkwebview 2 | 3 | In Progress! 4 | 5 | ## License 6 | 7 | MIT. See `LICENSE`. 8 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-native-wkwebview", 3 | "version": "0.0.1", 4 | "description": "React Native Module for WKWebView", 5 | "main": "AQWebView.ios.js", 6 | "repository": { 7 | "type": "git", 8 | "url": "git@github.com:qrush/react-native-wkwebview.git" 9 | }, 10 | "files": [ 11 | "AQWebView.xcodeproj", 12 | "AQWebView/AQWebView.h", 13 | "AQWebView/AQWebView.m", 14 | "AQWebView/AQWebViewManager.h", 15 | "AQWebView/AQWebViewManager.m", 16 | "AQWebView.ios.js", 17 | "README.md" 18 | ], 19 | "keywords": [ 20 | "react-component", 21 | "react-native", 22 | "ios", 23 | "webview", 24 | "uiwebview", 25 | "wkwebview" 26 | ], 27 | "author": "Nick Quaranto ", 28 | "license": "MIT", 29 | "dependencies": { 30 | "react-native": "< 1" 31 | } 32 | } 33 | --------------------------------------------------------------------------------