Я пытаюсь создать приложение MacOS, которое может загружать веб-сайты и извлекать из них данные с помощью веб-просмотров, но я не могу загрузить веб-просмотры вообще, как с удаленным, так и с локальным контентом.
Я пытаюсь использовать очень маленькое веб-представление, встроенное в основной вид. (В конечном счете, я не хочу, чтобы это отображалось, или я хочу, чтобы оно было как можно меньшим - я просто хочу, чтобы отображаемый контент извлекал данные.) Вот так:
Однако ни загрузка из удаленного URL, ни загрузка из локальной строки html теста не работают. Когда я нажимаю кнопку load-from-remote-url или кнопку load-from-local-test-string, оператор print, который я вставил туда, чтобы убедиться, что функция вызывается, печатается, но никаких изменений в веб-просмотр: он просто остается пустой белой коробкой. Это также не вызывает каких-либо ошибок.
Вот код ошибки:
webViewTools.swift:
import Foundation
import WebKit
extension WKWebView {
func load(_ urlString: String) {
guard let url = URL(string: urlString) else {
print("can't make url")
return
}
let request = URLRequest(url: url)
load(request)
}
}
let testHtml = "<html><body><h1>Hello World</h1></body></html>"
extension WKWebView {
func test(){
loadHTMLString(testHtml, baseURL: nil)
}
}
ViewController.swift:
import Cocoa
import WebKit
class ViewController: NSViewController {
@IBOutlet var webView: WKWebView!
@IBAction func loadButtonPressed(_ sender: Any) {
webView.load("https://www.apple.com/")
print("trying to load from remote")
}
@IBAction func linkButtonPressed(_ sender: Any) {
webView.test()
print("trying to load local string")
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override var representedObject: Any? {
didSet {
// Update the view, if already loaded.
}
}
}
Примечание: песочница не включена, и я добавил «Разрешить произвольные загрузки» к записи «Настройки безопасности транспорта приложения» в info.plist, поэтому этот предыдущий SO не решает проблему .
Как мне убедить WKWebView на самом деле, вы знаете, что-то показать? (MacOS 10.14.5, Swift 5, XCode 10.2.1)