Use WKWebView on iOS instead of UIWebView

Better performance, 3d touch support, swipe back gesture support, ...
This commit is contained in:
Bruno Lemos
2017-04-01 21:21:27 -03:00
parent 447443e4dd
commit 1becc70e6c
4 changed files with 65 additions and 9 deletions

View File

@@ -39,6 +39,7 @@
70529AC5247643599CF57A1E /* libBugsnagReactNative.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FEA28150F0284124B5AAA6E5 /* libBugsnagReactNative.a */; };
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
8D76C76874A04A2995094F54 /* Octicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 3EECC793DFFB4ED6B076E626 /* Octicons.ttf */; };
AF5CA5BEDDF841C1A396C9E5 /* libRCTWKWebView.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7AD860DD733B4A5D8663A92E /* libRCTWKWebView.a */; };
CE2BE6CB5D154078874FB499 /* libRNVectorIcons.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 57AA208D43CA480F8D711CC4 /* libRNVectorIcons.a */; };
E620E174FB04479A83B63EF2 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CFD9476C09474046AC17A14E /* libz.tbd */; };
FB160032F99C480BA68444DD /* libCodePush.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7A31A58FBC5448608452A5BB /* libCodePush.a */; };
@@ -151,6 +152,13 @@
remoteGlobalIDString = 134814201AA4EA6300B7C361;
remoteInfo = CodePush;
};
2ECCD5DE1E907A04007DF805 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 2C989B298AFF449FBEB9A0C3 /* RCTWKWebView.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 0974579A1D2A440A000D9368;
remoteInfo = RCTWKWebView;
};
3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */;
@@ -297,6 +305,7 @@
25C710C69B5F45C7B0AAC12E /* libBVLinearGradient.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libBVLinearGradient.a; sourceTree = "<group>"; };
2893507154194F37A0506471 /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = "<group>"; };
2A9840694FB74C18BE3E68BA /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = "<group>"; };
2C989B298AFF449FBEB9A0C3 /* RCTWKWebView.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTWKWebView.xcodeproj; path = "../node_modules/react-native-wkwebview-reborn/ios/RCTWKWebView.xcodeproj"; sourceTree = "<group>"; };
2D02E47B1E0B4A5D006451C7 /* devhub-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "devhub-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
2D02E4901E0B4A5D006451C7 /* devhub-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "devhub-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
2E207F1B8D1E436EA57BBBB8 /* EvilIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = EvilIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = "<group>"; };
@@ -305,6 +314,7 @@
5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = "<group>"; };
78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = "<group>"; };
7A31A58FBC5448608452A5BB /* libCodePush.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libCodePush.a; sourceTree = "<group>"; };
7AD860DD733B4A5D8663A92E /* libRCTWKWebView.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRCTWKWebView.a; sourceTree = "<group>"; };
81CBED937A794546B2944E97 /* BVLinearGradient.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = BVLinearGradient.xcodeproj; path = "../node_modules/react-native-linear-gradient/BVLinearGradient.xcodeproj"; sourceTree = "<group>"; };
832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = "<group>"; };
910FE5001BCD4451A788F4BA /* Entypo.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Entypo.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = "<group>"; };
@@ -350,6 +360,7 @@
FC6C552136EF4C0E8A14BD70 /* libRCTOrientationListener.a in Frameworks */,
CE2BE6CB5D154078874FB499 /* libRNVectorIcons.a in Frameworks */,
FB160032F99C480BA68444DD /* libCodePush.a in Frameworks */,
AF5CA5BEDDF841C1A396C9E5 /* libRCTWKWebView.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -524,6 +535,14 @@
name = Products;
sourceTree = "<group>";
};
2ECCD5C61E907A04007DF805 /* Products */ = {
isa = PBXGroup;
children = (
2ECCD5DF1E907A04007DF805 /* libRCTWKWebView.a */,
);
name = Products;
sourceTree = "<group>";
};
37BD2C74772940869DA52D8D /* Frameworks */ = {
isa = PBXGroup;
children = (
@@ -586,6 +605,7 @@
AB600FA23AD64E789E7929C8 /* RCTOrientationListener.xcodeproj */,
16B358E9AC2546ED9A8E8D22 /* RNVectorIcons.xcodeproj */,
EB7551F877DB4815969BF2BF /* CodePush.xcodeproj */,
2C989B298AFF449FBEB9A0C3 /* RCTWKWebView.xcodeproj */,
);
name = Libraries;
sourceTree = "<group>";
@@ -795,6 +815,10 @@
ProductGroup = 139FDEE71B06529A00C62182 /* Products */;
ProjectRef = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */;
},
{
ProductGroup = 2ECCD5C61E907A04007DF805 /* Products */;
ProjectRef = 2C989B298AFF449FBEB9A0C3 /* RCTWKWebView.xcodeproj */;
},
{
ProductGroup = 146834001AC3E56700842450 /* Products */;
ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */;
@@ -906,6 +930,13 @@
remoteRef = 2EA88ECB1E72B1260078504B /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
2ECCD5DF1E907A04007DF805 /* libRCTWKWebView.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRCTWKWebView.a;
remoteRef = 2ECCD5DE1E907A04007DF805 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
@@ -1171,6 +1202,7 @@
"$(SRCROOT)/../node_modules/react-native-orientation-listener",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-code-push/ios/CodePush/**",
"$(SRCROOT)/../node_modules/react-native-wkwebview-reborn/ios/RCTWKWebView",
);
INFOPLIST_FILE = devhubTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
@@ -1182,6 +1214,7 @@
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
@@ -1205,6 +1238,7 @@
"$(SRCROOT)/../node_modules/react-native-orientation-listener",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-code-push/ios/CodePush/**",
"$(SRCROOT)/../node_modules/react-native-wkwebview-reborn/ios/RCTWKWebView",
);
INFOPLIST_FILE = devhubTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
@@ -1216,6 +1250,7 @@
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
@@ -1242,6 +1277,7 @@
"$(SRCROOT)/../node_modules/react-native-orientation-listener",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-code-push/ios/CodePush/**",
"$(SRCROOT)/../node_modules/react-native-wkwebview-reborn/ios/RCTWKWebView",
);
INFOPLIST_FILE = devhub/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@@ -1270,6 +1306,7 @@
"$(SRCROOT)/../node_modules/react-native-orientation-listener",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-code-push/ios/CodePush/**",
"$(SRCROOT)/../node_modules/react-native-wkwebview-reborn/ios/RCTWKWebView",
);
INFOPLIST_FILE = devhub/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@@ -1303,6 +1340,7 @@
"$(SRCROOT)/../node_modules/react-native-orientation-listener",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-code-push/ios/CodePush/**",
"$(SRCROOT)/../node_modules/react-native-wkwebview-reborn/ios/RCTWKWebView",
);
INFOPLIST_FILE = "devhub-tvOS/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@@ -1313,6 +1351,7 @@
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
@@ -1345,6 +1384,7 @@
"$(SRCROOT)/../node_modules/react-native-orientation-listener",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../node_modules/react-native-code-push/ios/CodePush/**",
"$(SRCROOT)/../node_modules/react-native-wkwebview-reborn/ios/RCTWKWebView",
);
INFOPLIST_FILE = "devhub-tvOS/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@@ -1355,6 +1395,7 @@
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
@@ -1388,6 +1429,7 @@
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.devhub-tvOSTests";
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -1417,6 +1459,7 @@
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.devhub-tvOSTests";
PRODUCT_NAME = "$(TARGET_NAME)";

View File

@@ -39,6 +39,7 @@
"react-native-orientation-listener": "https://github.com/iRoachie/react-native-orientation-listener",
"react-native-prompt-android": "^0.0.5",
"react-native-vector-icons": "^4.0.0",
"react-native-wkwebview-reborn": "^1.4.0",
"react-navigation": "^1.0.0-beta.6",
"react-redux": "^5.0.3",
"redux": "^3.6.0",
@@ -75,8 +76,13 @@
},
"jest": {
"preset": "jest-react-native",
"moduleFileExtensions": ["js"],
"moduleDirectories": ["node_modules", "web/node_modules"],
"moduleFileExtensions": [
"js"
],
"moduleDirectories": [
"node_modules",
"web/node_modules"
],
"testRegex": "<rootDir>/(web/src|src)/.*\\.test\\.js$"
}
}

View File

@@ -0,0 +1 @@
export default from 'react-native-wkwebview-reborn';

View File

@@ -2136,7 +2136,7 @@ fbjs-scripts@^0.7.0:
semver "^5.1.0"
through2 "^2.0.0"
fbjs@^0.8.4, fbjs@^0.8.5, fbjs@^0.8.8, fbjs@^0.8.9, fbjs@~0.8.9:
fbjs@^0.8.3, fbjs@^0.8.4, fbjs@^0.8.5, fbjs@^0.8.8, fbjs@^0.8.9, fbjs@~0.8.9:
version "0.8.9"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.9.tgz#180247fbd347dcc9004517b904f865400a0c8f14"
dependencies:
@@ -4205,9 +4205,15 @@ react-native-vector-icons@^4.0.0:
lodash "^4.0.0"
yargs "^6.3.0"
react-native@0.43.0-rc.3:
version "0.43.0-rc.3"
resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.43.0-rc.3.tgz#021e5910887b9c7c6bd7e04591b5c6e145d7ab8a"
react-native-wkwebview-reborn@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/react-native-wkwebview-reborn/-/react-native-wkwebview-reborn-1.4.0.tgz#5558ac1f7bc8e7ac30bc6f8b30e5ab4ab64523f8"
dependencies:
fbjs "^0.8.3"
react-native@0.43.0-rc.0:
version "0.43.0-rc.0"
resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.43.0-rc.0.tgz#0eefefcda4e5546b69072fa9020c51e42294cb2e"
dependencies:
absolute-path "^0.0.0"
art "^0.10.0"
@@ -5134,9 +5140,9 @@ strip-json-comments@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
styled-components@2.0.0-7:
version "2.0.0-7"
resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-2.0.0-7.tgz#a420b99622eacec26ae3d62c1c75985791d9691b"
styled-components@2.0.0-6:
version "2.0.0-6"
resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-2.0.0-6.tgz#ab338ebf42a0c7ca667ad9478ec5a138d41530ec"
dependencies:
buffer "^5.0.3"
css-to-react-native "2.0.1"