Подтвердить что ты не робот

Как я могу заставить WKWebView работать быстро и для приложения macOS

пока это не будет сбито за дублирование, это не так. Почти каждый вопрос о WKWebView здесь о WKWebView в приложениях iOS, а не о приложениях MacOS, причем разница в том, что интерфейс UIViewController реализуется вместо интерфейса NSViewController в macOS.

Пример кода в документации Apple, а также код контроллера, который можно найти в Интернете, не работает. Хотя он скомпилирован без проблем, веб-просмотр остается неактивным.

Есть ли что-то, что я просто не видел или это ошибка в WKWebView?
Я даже скопировал код из учебников, в котором показано, как это сделать для iOS, и только что изменил UIViewController на NSViewController (так как это была ТОЛЬКО разница), но это не сработало.

Следующий код в ViewController.swift не работает. Он также не работает, если он class ViewController: NSViewController, WKUIDelegate

import Cocoa;
import WebKit;
class ViewController: NSViewController {
    @IBOutlet weak var webView: WKWebView!
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        let url=URL(string: "http://safetec-cam.biz/images/webcam_extern/bad-nauheim_bahnhof_west.jpg");
        webView.load(URLRequest(url: url!));
    }
}

он также не работает, если это делается с помощью UIViewController, обменянного для NSViewController изображение из https://developer.apple.com/documentation/webkit/wkwebview

4b9b3361

Ответ 1

Я рекомендую вам начать с нуля:

Задайте свой URL для загрузки:

let myURLString = "https:yourWebLink"
let url = NSURL(string: myURLString)
let request = NSURLRequest(URL: url!)  

Инициализация и запрос на загрузку в веб-просмотре:

    webView = WKWebView(frame: self.view.frame)
    webView.navigationDelegate = self
    webView.loadRequest(request)

Реализовать WKNavigationDelegate для отслеживания вашей страницы Загрузка/Ошибка:

func webView(webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: NSError) {
    print(error.localizedDescription)
}
func webView(webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
    print("Strat to load")
}
func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
    print("finish to load")
}

Не забудьте добавить делегат WKNavigationDelegate в файл ViewController.swift.

class ViewController: UIViewController , WKNavigationDelegate{

Для дополнительной справки: https://iosdevcenters.blogspot.com/2016/05/creating-simple-browser-with-wkwebview.html