当使用iTunes文件共享将文档添加到应用程序时,我在尝试将文档加载到WKWebView时遇到问题。
如果我在应用程序中包含该文件,我可以加载它。
我正在使用此代码来加载文件:
let documentsURL = try! FileManager().url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
let fooURL = documentsURL.appendingPathComponent(docFileName)
let docURL = URL(fileURLWithPath: fooURL.path)
let req = URLRequest(url:docURL)
docView!.load(req)
docURL看起来像这样: 文件:///var/mobile/Containers/Data/Application/432E716E-F70D-4985-814C-FFE7ECE53EF8/Documents/filename.pdf
我尝试使用此代码检查文件是否存在:
FileManager().fileExists(atPath: fooURL.path)
返回true。我还尝试将文件夹中的文件复制到app文件夹中,但这会返回找不到文件的错误(即使检查文件后也是如此)
WKWebView能否从这个位置加载?或者我错过了什么?
答案 0 :(得分:2)
也许您正在寻找loadFileURL(_:allowingReadAccessTo:)
虽然我没有在文档中明确说明这一点,但如果WKWebView的安全策略妨碍你的话,我不会感到惊讶,而且这种方法的存在似乎证实了这一点; - )
快乐的编码!