无法为可可应用程序打开target = _blank webview-swift

时间:2019-06-26 12:27:01

标签: swift macos cocoa

我有一个加载https://www.example.com的Web应用程序,但是某些链接正在使用target =“ _ blank”在新选项卡中打开,但是如果它不起作用。 我正在使用Swift 4,它是Mac OS的可可应用程序。 我正在使用WebView旧版,以实现从10.10到最新版本的Mac OS的兼容性。

这是我到目前为止尝试过的:

import Cocoa
import WebKit

class ViewController: NSViewController {

    @IBOutlet weak var WebViewKit: WebView!
    private var url = "https://www.example.com"

    override func viewDidLoad() {
        if #available(OSX 10.10, *) {
            super.viewDidLoad()
            self.WebViewKit.uiDelegate = self as? WebUIDelegate

        } else {
            // Fallback on earlier versions
        }

        WebViewKit.mainFrameURL = url
        guard let url = URL(string: url) else { return }
        let request = URLRequest(url: url)
        WebViewKit.mainFrame.load(request)
    }

    override var representedObject: Any? {
        didSet {
        // Update the view, if already loaded.
        }
    }

    override func viewDidAppear() {
        if #available(OSX 10.10, *) {
            super.viewDidAppear()
        } else {
            // Fallback on earlier versions
        }
        self.view.window?.title = "My Web Application Title"

        if let screen = NSScreen.main {
            self.view.window?.setFrame(screen.visibleFrame, display: true, animate: true)
        }
    }

}

 extension ViewController: WKUIDelegate {
    func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
        if navigationAction.targetFrame == nil {
            WebViewKit.mainFrame.load(navigationAction.request)
        }
        return nil
    }
}

感谢您的帮助!

0 个答案:

没有答案