我有一个加载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
}
}
感谢您的帮助!