0
我從本地應用程序「文檔」文件夾加載HTML頁面,並使用結構化目錄。 「主」文件夾存儲主頁和資源,「交互式」文件夾存儲另一個模塊,通過主頁進行重定向。WKWebView無法加載HTML中的本地資源
我加載「主」文件夾中的「ipad.html」,該頁面無法加載的資源(即CSS/JS文件),以顯示正確的樣式。這樣的代碼。
let indexHTML = "ipad.html"
let path = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
let documentDirectoryPath: String = path[0]
let folderPath = documentDirectoryPath.appending("/main")
let destinationURLForFile = URL(fileURLWithPath: folderPath + "/\(indexHTML)")
let baseUrl = URL(fileURLWithPath: folderPath, isDirectory: true)
do{
let fileName = try String(contentsOf: destinationURLForFile, encoding: String.Encoding(rawValue: String.Encoding.utf8.rawValue))
webView.loadHTMLString(fileName, baseURL: baseUrl)
}catch{
print("Loading HTML failed.")
}
這裏面就是「ipad.html」。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>demo</title>
<meta name="description" content="" />
<meta name="author" content="" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<link rel="stylesheet" href="./css/animate.min.css">
<link rel="stylesheet" href="./css/style.css">
<script src="./bower_components/modernizr/modernizr-2.5.3.min.js"></script>
</head>
<body class="page-ipad-landing animated" lang="">
......
......
</body>
</html>
但我將其移動到Bundle.main,並刪除「主」文件夾以加載「ipad.html」是正確顯示。爲什麼它不同的行爲或iOS不支持「Documents」文件夾下的複雜文件夾結構,我應該如何糾正它?謝謝。
這個簡單的在Bundle.main文件夾中正常工作。
if let url = Bundle.main.url(forResource: "ipad", withExtension: "html") {
do {
let contents = try String(contentsOfFile: url.path)
webView.loadHTMLString(contents, baseURL: url.deletingLastPathComponent())
} catch {
print("Could not load the HTML string.")
}
}
如何在 「文檔」 目錄中工作,爲什麼失敗?我的目標是存儲在「文檔」目錄中並允許Internet更新文件。 –