如何使用WKWebview使用哈希加载文件

时间:2019-08-17 01:09:30

标签: ios swift wkwebview

我使用代码加载URL路径哈希片段(例如:index.html#/ some-hash-path;但是WKWebview不会加载url。

let path = "www/index.html"
let page = "#/some-hash-path"
let url = Bundle.main.bundleURL.appendingPathComponent(path + page)
self.webView.loadFileURL(url, allowingReadAccessTo: Bundle.main.bundleURL)

似乎将#->%23转换为无效路径

2 个答案:

答案 0 :(得分:1)

我也试图以一种显然正确的方式为本地文件构建url时遇到了麻烦。

必须使用URL(string:)初始化程序创建该url,并用file://手动为其前缀,并使用loadFileURL()加载该URL。

let url = URL(string: "file://\(indexPath)#\(section)")
webView.loadFileURL(url, allowingReadAccessTo: Bundle.main.bundleURL)

答案 1 :(得分:-1)

按预期从字符串工作中构造URL:

let path = "www/index.html"
let page = "#/some-hash-path"
guard let parsedUrl = URL(string: Bundle.main.bundleURL.absoluteString + path + page) else {
  return
}
self.webView.loadFileURL(parsedUrl, allowingReadAccessTo: Bundle.main.bundleURL)