У меня есть веб-приложение, которое загружает https://www.example.com,, но некоторые ссылки используют 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
}
}
Спасибо за любую помощь!