Не удается открыть цель = _blank веб-представление для приложения какао - swift - PullRequest
0 голосов
/ 26 июня 2019

У меня есть веб-приложение, которое загружает 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
    }
}

Спасибо за любую помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...