WKWebView Support


#1

I’m working on an app that uses a WebView in order to support HTML 5 content. Things are running fine on Android, but on iOS the react-native default UIWebView is unable to support the content. In native code (e.g. a Swift app), Apple wants you to use the new WKWebView (UIWebView was deprecated in iOS 8). I don’t believe React Native supports using WKWebView directly (though it probably should), but there is an add-on module with react-native-wkwebview-reborn. This module, however, requires changes to the Expo project at the Xcode level.

I don’t necessarily have a problem making the changes to support this solution, but am concerned that it breaks the fairly easy development process that Expo provides (requiring us to build Android and iOS apps separately with Android Studio and Xcode). More importantly – makes it so the over-the-air-update features of Expo would no longer be available.

Are there solutions for using WKWebView on iOS that don’t require breaking this functionality of Expo?


#2

+1 Bumping this since I’m running into the same problem!


#3

+1, would be very useful


#4

+1, would really love a way to use WKWebView without detaching to ExpoKit.

With iOS11 rollout, UIWebView gets an even more pronounced perf hit than in previous versions, making it unusable in a lot of cases.


#5

+1, wkWebView has significantly better webGL and JS bridge performance than UIWebView.

Please add https://github.com/CRAlpha/react-native-wkwebview (which is the repo for reborn) to the default expo app.

Note: THREE.Expo doesn’t appear to match the performance or functionality (support for webGL-extensions) of wkWebView.


#6

Hey everybody, we track feature requests on canny, here’s a link to the feature request where you can up-vote to help us put it on our radar sooner.
https://expo.canny.io/feature-requests/p/wkwebview-support


#7

+1 - sounds like it will solve a lot of performance issues


#8

With iOS11 rollout, UIWebView gets an even more pronounced perf hit than in previous versions, making it unusable in a lot of cases check this.