#結論
loadFileURL(_:allowingReadAccessTo:)の引数は確認しよう!
#環境
Xcode 11.3.1
Swift 5
#WKWebViewあるある
WKWebViewでローカルのHTMLを読み込もう! と意気込んでGoogle検索した場合は、大抵こんな感じの答えが帰ってきます。
let localurl = Bundle.main.url(forResource: "hoge", withExtension: "html")!
webview.loadFileURL(localurl, allowingReadAccessTo: localurl)
とりあえず動きを見るだけならBundle参照の方が圧倒的に楽なので、非常に合理的なサンプルコードです。
また、正直WebViewは表示した後のJS-Swift間のやり取りがみんな気になるので、この辺は割とさらっと済ませてしまいます。
で、それなりに実装が進んでDocumentsとかLibraryにリソースを配置するぞおおおおおおとなった時に、横着するとソースはこうなります。
let localurl = URL(fileURLWithPath: NSHomeDirectory() + "/Library/hoge.html")
webview.loadFileURL(localurl, allowingReadAccessTo: localurl)
(実際はもっと丁寧に文字列定義するとは思う)
この時に、allowingReadAccessToの値をそのままにしちゃうと、JavaScriptとかCSSファイルが読み込めなくなっちゃいます。
let localurl = URL(fileURLWithPath: NSHomeDirectory() + "/Library/hoge.html")
let allowAccess = URL(fileURLWithPath: NSHomeDirectory())
webview.loadFileURL(localurl, allowingReadAccessTo: allowAccess)
こんな感じで、allowingReadAccessToに適切なアクセス範囲を指定してあげると、
Bundleから読み込んでいた時と同じ挙動になると思います。