iOS - WKWebView 跨源请求仅支持 HTTP

iOS - WKWebView Cross origin requests are only supported for HTTP

您好,我正在尝试使用 WKWebView 加载主捆绑包中的 html,这与 UIWebView 完美配合,但现在出现错误,html 中的文件无法加载在控制台中发送错误:"XMLHttpRequest cannot load"

这是嵌入内容的示例 http://proyectoshm.com/esferas/dosaguas/dosaguascitta.html

我的代码:

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)

要解决它,您需要从 WKPreferences

开启 allowFileAccessFromFileURLs

Swift

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

Objective-C

[webView.configuration.preferences setValue:@YES forKey:@"allowFileAccessFromFileURLs"];

文件访问和通用文件访问(在从设备读取媒体的情况下)

[webView.configuration.preferences setValue:@YES forKey:@"allowFileAccessFromFileURLs"];
[webView.configuration setValue:@YES forKey:@"allowUniversalAccessFromFileURLs"];

Xamarin.iOS 开发者:

WKWebViewConfiguration config = webView.Configuration;
config.Preferences.SetValueForKey( FromObject( true ), new NSString( "allowFileAccessFromFileURLs" ) );
config.SetValueForKey( FromObject( true ), new NSString( "allowUniversalAccessFromFileURLs" ) );