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;
}

```
These javascript lines will disable long presses and link touches by overriding the HTML. Frame based things like embedded youtube videos will still work.

```
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    webView.evaluateJavaScript("document.documentElement.style.webkitUserSelect='none'")
    webView.evaluateJavaScript("document.documentElement.style.webkitTouchCallout='none'")
    webView.evaluateJavaScript("var elems = document.getElementsByTagName('a'); for (var i = 0; i < elems.length; i++) { elems[i]['href'] = 'javascript:(void)'; }")
}

```