// // plotPopupViewController.swift // wktest // // Created by hrbrmstr on 9/9/19. // Copyright © 2019 Bob Rudis. All rights reserved. // import Cocoa import WebKit class plotPopupViewController: NSViewController { var webView: WKWebView! var urlPath: String = "" open override func viewDidLoad() { super.viewDidLoad() } func setupWebView(configuration: WKWebViewConfiguration) { webView = WKWebView(frame: view.bounds, configuration: configuration) webView.autoresizingMask = [.width, .height] webView.uiDelegate = self webView.navigationDelegate = self view.addSubview(webView) } func loadWebView(urlIn: String) { urlPath = urlIn NSLog(urlPath) // Check for "/export/" // If export, then get bring up a Save Panel and then download the file to that location if let url = URL(string: urlPath) { let urlRequest = URLRequest(url: url) NSLog("URL path: " + url.path) if (url.path.starts(with: "/export")) { NSLog(" Name: " + url.queryParameters["name"]!) DispatchQueue.main.async { self.webView.removeFromSuperview() } } else { webView.load(urlRequest) } } } override func viewDidAppear() { super.viewDidAppear() } } extension plotPopupViewController: WKUIDelegate { func webViewDidClose(_ webView: WKWebView) { self.view.window?.close() } func webView(_ webView: WKWebView, runOpenPanelWith parameters: WKOpenPanelParameters, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping ([URL]?) -> Void) { NSLog("savePanel!") let savePanel = NSSavePanel() savePanel.canCreateDirectories = true savePanel.beginSheetModal(for:self.view.window!) { (response) in if (response == NSApplication.ModalResponse.OK) { completionHandler([savePanel.url!]) } else { completionHandler(nil) } savePanel.close() } } } extension plotPopupViewController: WKNavigationDelegate { open func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) { print("DID START") } func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { print("DID FINISH") } }