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"
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)
To resolve it, you need to turn allowFileAccessFromFileURLs
on from WKPreferences
webView.configuration.preferences.setValue(true, forKey: "allowFileAccessFromFileURLs")
[webView.configuration.preferences setValue:@YES forKey:@"allowFileAccessFromFileURLs"];
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"];
For Xamarin.iOS devs:
WKWebViewConfiguration config = webView.Configuration;
config.Preferences.SetValueForKey( FromObject( true ), new NSString( "allowFileAccessFromFileURLs" ) );
config.SetValueForKey( FromObject( true ), new NSString( "allowUniversalAccessFromFileURLs" ) );
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With