Question: Is there a way to disable interactions on a webview?
So that the user can not go any further than the webview that is loaded?

EDIT:
Disabling UserInteractions is not a solution because the website still has to be scrollable.

Answer: 
The `WKNavigationDelegate` solution only prevents the user from following links. I also have form controls that I want to prevent interaction with, while still allowing the page to be scrolled. Eventually I figured out that this could be achieved by disabling the subviews of the web view's scroll view:

**Swift**

```
self.webView.scrollView.subviews.forEach { $0.isUserInteractionEnabled = false }

```

**Objective-C**

```
for (UIView *subview in self.webView.scrollView.subviews)
{
    subview.userInteractionEnabled = NO;
}

```
First, you have to give the delegate to your webkit then add below code.
Swift 5.0

```
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    Activity.stopAnimating()
    let javascriptStyle = "var css = '*{-webkit-touch-callout:none;-webkit-user-select:none}'; var head = document.head || document.getElementsByTagName('head')[0]; var style = document.createElement('style'); style.type = 'text/css'; style.appendChild(document.createTextNode(css)); head.appendChild(style);"
    webView.evaluateJavaScript(javascriptStyle, completionHandler: nil)
}

```

What this code will do, we add programmatically css that will disable interaction in webview