iOS - WKWebView Cross origin requests are only sup

2020-02-25 08:46发布

Hi i'm trying to load an html that is in the main Bundle with WKWebView this worked perfectly with UIWebView but now i have an error, the files in the html does not load send an error in the console : "XMLHttpRequest cannot load"

Consola form simulator

Simulator

this is an example http://proyectoshm.com/esferas/dosaguas/dosaguascitta.html of the content embedded.

My code:

let folder = "maquetas/esferas/\(esfera)"

let resourcePath = Bundle.main.resourcePath
let subdir = URL(fileURLWithPath:resourcePath!).appendingPathComponent(folder, isDirectory: true)

guard let path = Bundle.main.path(forResource: "index", ofType: "html", inDirectory: folder) else {
    print("no se encontró path")
    return

}
print(subdir.path)


let url = NSURL.fileURL(withPath: path)
 print(url.path)
 vistaweb = WKWebView(frame: self.view.frame)

vistaweb.loadFileURL(url, allowingReadAccessTo: subdir)

self.view.addSubview(vistaweb)

2条回答
家丑人穷心不美
2楼-- · 2020-02-25 09:01

File Access and universal File access (In case of reading media from device)

[webView.configuration.preferences setValue:@YES forKey:@"allowFileAccessFromFileURLs"];
[webView.configuration setValue:@YES forKey:@"allowUniversalAccessFromFileURLs"];
查看更多
▲ chillily
3楼-- · 2020-02-25 09:08

To resolve it, you need to turn allowFileAccessFromFileURLs on from WKPreferences

Swift

webView.configuration.preferences.setValue(true, forKey: "allowFileAccessFromFileURLs")

Objective-C

[webView.configuration.preferences setValue:@YES forKey:@"allowFileAccessFromFileURLs"];
查看更多
登录 后发表回答