Какао: открывать ссылки с Target_blank в новых вкладках? WKWebview - PullRequest
0 голосов
/ 19 июня 2020

Я создал приложение веб-браузера какао. Я тестировал свой браузер, и мне не удавалось открывать ссылки с target_blank. Итак, я нашел вопрос о переполнении стека. Я использовал этот ответ и проверил его, и я смог открыть ссылки. Но ссылки будут открываться на той же веб-странице. Я хочу, чтобы он открылся в новой вкладке. Итак, я нашел эту веб-страницу , которая рассказывает мне, как добавить вкладки nswindow в мое приложение. Я добавил вкладки в свой браузер какао.

Вот коды, которые я добавил

Я использовал приведенный ниже код для создания вкладок в своем оконном контроллере:

@IBAction override func newWindowForTab(_ sender: Any?) {
    let newWindowController = self.storyboard!.instantiateInitialController() as! WindowController
    let newWindow = newWindowController.window!
    newWindow.windowController = self

    self.window!.addTabbedWindow(newWindow, ordered: .above)
}

Это код в моем ViewController, который открывает ссылки с целевым пустым:

//It opens in the same web page

    func webView(webView: WKWebView!, createWebViewWithConfiguration configuration: WKWebViewConfiguration!, forNavigationAction navigationAction: WKNavigationAction!, windowFeatures: WKWindowFeatures!) -> WKWebView! {
        if navigationAction.targetFrame == nil {
            webView.loadRequest(navigationAction.request)
        }
        return nil
    }

Я подумал о том, чтобы изменить приведенный выше код на этот:

func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
    newWindowForTab(webView.load(navigationAction.request))
return nil
    }

Но затем я получаю эту ошибку:

Screenshot of Error

Невозможно преобразовать возвращаемое выражение типа «Void» в возвращаемый тип «WKWebView?»

Не могли бы вы помочь меня открывать ссылки на новых вкладках вместо той же страницы?

...