Loading Error (Frame load interrupted) on WKDownloadDelegate inside WebView

So I'll keep it short. AS the title says I have an a web view embedded in my SwiftUI application for macOS and there's a link on the website which downloads a .doc file. However WKWebView doesn't really let you know download stuff from the internet like that. I looked around and tried the WKDownloadDelegate solution. However it gives me and error that Loading Error (Frame load interrupted). Does anyone know how can I simply download a normal text file from a website onto the Mac using WKWebView in SwiftUI? Here's my WebView code:

import SwiftUI

import WebKit

import Combine



class WebViewData: ObservableObject {

  @Published var loading: Bool = false

  @Published var url: URL?;

    var popupWebView: WKWebView?

  init (url: URL) {

    self.url = url

  }

}



@available(OSX 11.0, *)

struct WebView: NSViewRepresentable {

  @ObservedObject var data: WebViewData



  func makeNSView(context: Context) -> WKWebView {

    return context.coordinator.webView

  }



  func updateNSView(_ nsView: WKWebView, context: Context) {



    guard context.coordinator.loadedUrl != data.url else { return }

    context.coordinator.loadedUrl = data.url



    if let url = data.url {

      DispatchQueue.main.async {

        let request = URLRequest(url: url)

        nsView.load(request)

      }

    }



    context.coordinator.data.url = data.url

  }



  func makeCoordinator() -> WebViewCoordinator {

    return WebViewCoordinator(data: data)

  }

}



@available(OSX 11.0, *)

class WebViewCoordinator: NSObject, WKNavigationDelegate {

  @ObservedObject var data: WebViewData



  var webView: WKWebView = WKWebView()

  var loadedUrl: URL? = nil



  init(data: WebViewData) {

    self.data = data



    super.init()



    webView.navigationDelegate = self

  }



  func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {

    DispatchQueue.main.async {

      self.data.loading = false

    }

  }

    

    

    

    

    // early decision per URL

       func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {



           if navigationAction.request.url?.pathExtension == ".doc" {

               decisionHandler(.download)

           } else {

               decisionHandler(.allow)

           }

       }



       // when known response

       func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {

           if navigationResponse.response.mimeType == "application/word" {

               decisionHandler(.download)

           } else {

               decisionHandler(.allow)

           }

       }

    

    



  func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {

    DispatchQueue.main.async { self.data.loading = true }

  }



  func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {

    showError(title: "Navigation Error", message: error.localizedDescription)

    DispatchQueue.main.async { self.data.loading = false }

  }



  func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) {

    showError(title: "Loading Error", message: error.localizedDescription)

    DispatchQueue.main.async { self.data.loading = false }

  }





  func showError(title: String, message: String) {

    #if os(macOS)

    let alert: NSAlert = NSAlert()



    alert.messageText = title

    alert.informativeText = message

    alert.alertStyle = .warning



    alert.runModal()

    #else

    print("\(title): \(message)")

    #endif

  }

}

Here's my Content View


 @available(OSX 11.0, *)

 struct ContentView: View {


 private var url: URL? = URL(string: "https://mywebsite.com")

   init() {
print("Hello World")
   }

   var body: some View {
  
  
WebView(data: WebViewData(url: self.url!))
      .frame(minWidth: 1400, idealWidth: 1500, minHeight: 850, idealHeight: 850)
  
  }



 }

Also here's how my website downloads the files using JS in case anyone's interested:

 
   var sourceHTML = document.getElementById("notes").innerHTML;
     
   var source = 'data:application/vnd.ms-word;charset=utf-8,' +    encodeURIComponent(sourceHTML);
   var fileDownload = document.createElement("a");
   document.body.appendChild(fileDownload);
   fileDownload.href = source;
 
   var lines = $('#notes').val().split('.');//gives all lines
    const firstLine=lines[0];
  console.log(firstLine)
   fileDownload.download = firstLine + ".doc";
   fileDownload.click();
   document.body.removeChild(fileDownload);
}
Loading Error (Frame load interrupted) on WKDownloadDelegate inside WebView
 
 
Q