Just migrated an app over to WKWebView
and was wondering if there is any possible way to 'preload' multiple URLs, but only display one at a time?
I have a list of 5 URLs. I already know that I will be shown at some point in time, and I want to speed up the experience by pre-loading these for use in a single WKWebView
.
I ended up just using NSURLCache and preloading all URLs using NSURLRequest and NSURLConnection. Then whenever I load a url into WKWebView it uses the cached requests per my cache policy.
You can also preload five different
WKWebView
instances and swap them in/out when you need a specific URL. This depends on your UI and interaction of course.A relatively straight-forward way to do this is to create five
NSData
objects (asynchronoulsly), each initialized using the known urls. When you need to display one of them, you can convert theNSData
to a string, and then callWKWebView
'sloadHTMLString
function to change the displayed page.