Я создал очень простое приложение WKWebView, используя XCode 11 и Swift 5.
Для этого я начал с приложения Hello World по умолчанию, удалил весь код из двух основных методов AppDelegate и удалил ContentView. .swift файл.
Затем я добавил новый файл класса ViewController.swift со следующим кодом
import Cocoa
import WebKit
class ViewController: NSViewController, WKUIDelegate
{
var webView: WKWebView!
override func loadView()
{
let webConfiguration = WKWebViewConfiguration ()
webView = WKWebView (frame: CGRect(x:0, y:0, width:800, height:600), configuration:webConfiguration);
webView.uiDelegate = self ;
view = webView;
}
override func viewDidLoad()
{
super.viewDidLoad()
if let url = Bundle.main.url ( forResource: "TeamMap"
, withExtension: "html"
, subdirectory: "TM-MAC")
{
self.webView.loadFileURL ( url
, allowingReadAccessTo: url);
self.view = webView ;
}
}
}
Затем я добавил View Controller в раскадровку и связал его с вышеуказанным файлом swift и установил его как контроллер основного представления.
Затем я добавил набор файлов в новую папку TM-MA C в структуре папок add со следующими файлами
TeamMap.html
TeamMap.js
TeamMap.css
plus several other javascript and image files.
Когда это приложение запускается окно, в котором WKWebView можно увидеть, а также проверить с помощью Safari.
Я обнаружил, что файлы html и js оба загружены, а файл css - нет. Я убежден, что в файле css нет ошибки, поскольку я использовал те же три файла в другом приложении XCode, написанном в Objective C.
Я обнаружил различные подобные отчеты в StackOverflow и одну вещь, которую я пробовал, что все еще не работает, чтобы изменить переменную, переданную в loadFileURL / allowReadAccessTo с URL-адреса на url.deletingLastPathComponent ()