本文介绍了iOS - WKWebView仅支持HTTP的跨源请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好我正在尝试使用WKWebView加载一个主要Bundle中的html,这与UIWebView完美配合,但现在我有一个错误,html中的文件没有加载在控制台中发送错误:XMLHttpRequest不能加载

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.

我的代码:

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)


推荐答案

要解决此问题,您需要转 allowFileAccessFromFileURLs 来自 WKPreferences

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

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



Objective-C



Objective-C

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

这篇关于iOS - WKWebView仅支持HTTP的跨源请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-02 04:59