如何从 iOS Swift 中的本地目录加载 index.html 文件?
How to load index.html file from local directory in iOS Swift?
我一直在从服务器下载 zip 文件并将 zip 文件解压缩到本地目录。
即/var/mobile/Containers/Data/Application/8A7B8DF1-AAA4-442E-99C9-82616FC3E192/Documents/assets.zip
解压路径:/var/mobile/Containers/Data/Application/8A7B8DF1-AAA4-442E-99C9-82616FC3E192/Library/Caches/47B7913E-A0B2-429D-AD91-AA3367EFB2AE
从解压缩的文件夹中,我需要将 index.html 加载到 WkWebView。但是我可以找到文件夹,但无法加载到 webview 中。
这里是下载 zip 文件并在本地目录中解压 zip 文件的代码:
let url = URL(string: v)
FileDownloader.loadFileAsync(url: url!) { (path, error) in
print("PDF File downloaded to : \(path!)")
guard let unzipPath = self.tempUnzipPath() else {
return
}
print("Unzip path:", unzipPath)
let success: Bool = SSZipArchive.unzipFile(atPath: path!,
toDestination: unzipPath,
preserveAttributes: true,
overwrite: true,
nestedZipLevel: 1,
password: nil,
error: nil,
delegate: nil,
progressHandler: nil,
completionHandler: nil)
if success != false {
print("Success unzip")
} else {
print("No success unzip")
return
}
var items: [String]
do {
items = try FileManager.default.contentsOfDirectory(atPath: unzipPath)
print("array item for unzip", items[0])
} catch {
return
}
for v in items[0] {
print("vv index.html", v)
self.buildAry.append(v)
}
print("build ary", self.buildAry)
let ss = self.buildAry[0]
print("index html", ss)
}
这是我的控制台输出:
Success unzip
array item for unzip build
vv index.html b
vv index.html u
vv index.html i
vv index.html l
vv index.html d
build ary 2020-02-07 19:40:44.480754+0530[9847:2135988] [Process] kill() returned unexpected error 1
["b", "u", "i", "l", "d"]
index html b
如何从解压缩的文件夹中将 index.html 加载到 WKWebView 中。非常感谢任何帮助..
通常要在 WKWebView 中打开本地文件,您可以在 WKWebView 实例上调用 loadFileURL(URL, allowReadAccessTo: URL)
。
评论后编辑:
如果您知道,您的 index.html 将始终位于“构建”文件夹中,您可以执行以下操作:
let url = URL(fileURLWithPath: unzipPath, isDirectory: false).appendingPathComponent("build").appendindPathComponent("Index.html", isDirectory: false)
myWKWebView.loadFileURL(url, allowsReadAccessTo: url)
如果您需要更多帮助,请发表评论。
我一直在从服务器下载 zip 文件并将 zip 文件解压缩到本地目录。
即/var/mobile/Containers/Data/Application/8A7B8DF1-AAA4-442E-99C9-82616FC3E192/Documents/assets.zip
解压路径:/var/mobile/Containers/Data/Application/8A7B8DF1-AAA4-442E-99C9-82616FC3E192/Library/Caches/47B7913E-A0B2-429D-AD91-AA3367EFB2AE
从解压缩的文件夹中,我需要将 index.html 加载到 WkWebView。但是我可以找到文件夹,但无法加载到 webview 中。
这里是下载 zip 文件并在本地目录中解压 zip 文件的代码:
let url = URL(string: v)
FileDownloader.loadFileAsync(url: url!) { (path, error) in
print("PDF File downloaded to : \(path!)")
guard let unzipPath = self.tempUnzipPath() else {
return
}
print("Unzip path:", unzipPath)
let success: Bool = SSZipArchive.unzipFile(atPath: path!,
toDestination: unzipPath,
preserveAttributes: true,
overwrite: true,
nestedZipLevel: 1,
password: nil,
error: nil,
delegate: nil,
progressHandler: nil,
completionHandler: nil)
if success != false {
print("Success unzip")
} else {
print("No success unzip")
return
}
var items: [String]
do {
items = try FileManager.default.contentsOfDirectory(atPath: unzipPath)
print("array item for unzip", items[0])
} catch {
return
}
for v in items[0] {
print("vv index.html", v)
self.buildAry.append(v)
}
print("build ary", self.buildAry)
let ss = self.buildAry[0]
print("index html", ss)
}
这是我的控制台输出:
Success unzip
array item for unzip build
vv index.html b
vv index.html u
vv index.html i
vv index.html l
vv index.html d
build ary 2020-02-07 19:40:44.480754+0530[9847:2135988] [Process] kill() returned unexpected error 1
["b", "u", "i", "l", "d"]
index html b
如何从解压缩的文件夹中将 index.html 加载到 WKWebView 中。非常感谢任何帮助..
通常要在 WKWebView 中打开本地文件,您可以在 WKWebView 实例上调用 loadFileURL(URL, allowReadAccessTo: URL)
。
评论后编辑:
如果您知道,您的 index.html 将始终位于“构建”文件夹中,您可以执行以下操作:
let url = URL(fileURLWithPath: unzipPath, isDirectory: false).appendingPathComponent("build").appendindPathComponent("Index.html", isDirectory: false)
myWKWebView.loadFileURL(url, allowsReadAccessTo: url)
如果您需要更多帮助,请发表评论。