Read now

Migrating from UIWebview to WKWebview in swift

The UIWebview class has been introduced since iOS 2.0 to show HTML content inside your app, but iOS 8.0 introduced  WKWebview as an alternative. Let’s discuss below what is the difference between them.

Difference Between UIWebview and WKWebView

UIWebview is a part of UIKit, so it is available to your apps as standard. You don’t need to import anything, it will we there by default.

But WKWebView is run in a separate process to your app,. You need to import Webkit to use WKWebView in your app. This means WkWebView loads web pages faster and more efficiently than UIWebView and also doesn’t have as much memory overhead for you.

We can use CSS in our WKWebView to handle the layouts according to our usage, please check below link

https://mobikul.com/ios-css-in-wkwebview-in-swift/

Let’s start integrating WKWebview in our project

Step-1: Firstly, create a new project with a Single View App.

 

Step-2:  Then, open “Main.storyboard” and on your ViewController’s view drag  “Webkit View”. Select a WKWebView and place it on your view of a view controller.

Step-3 : Now, open ViewController class and import Webkit then create IBOutlet for “WKWebview”.

 

Step-4: Then, add the below code in your viewDidLoad method to load the webpage.

 

Step-5: Finally, run your App and the webpage shows up.

 

 

Responding WKWebview Events with WKNavigationDelegate:

You can interact with the webView using navigationDelegate of type WKNavigationDelegate, which responds to navigation events.

First, add WKNavigationDelegate in your class and ser the navigationDelegate property of webview to self.

 

Now, lets add methods for WKNavigationDelegate.

1. shouldStartLoadwithRequest function in UIWebview will be equivalent to decidePolicyForNavigationAction in WKWebview.

 

2. webViewDidStartLoad function in UIWebview will be equivalent to didStartProvisionalNavigation in WKWebview.

 

3. didFailLoadWithError function in UIWebview will be equivalent to didFailNavigation in WKWebview.

 

4. webViewDidFinishLoad function in UIWebview will be equivalent to didFinishNavigation in WKWebview.

You can check all WKWebview delegates from below link-

https://developer.apple.com/documentation/webkit/wkwebview

Thank you for reading 🙂

Hope this article helps you.

For any queries, please feel free to add a comment in the comments section.

. . .

Comment

Add Your Comment

Be the first to comment.

css.php
Hire Us!
Brief us about your requirements and we'll get back to you.
Woo! Hooy!
We have just recieved your project brief and our expert will contact you shortly.
Send Again
Close