【问题标题】:iOS - WKWebView Cross origin requests are only supported for HTTPiOS - WKWebView 跨源请求仅支持 HTTP
【发布时间】:2017-10-29 02:25:59
【问题描述】:

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

这是嵌入内容的示例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)

【问题讨论】:

  • 试试这个vistaweb.configuration.preferences.setValue(true, forKey: "allowFileAccessFromFileURLs")
  • 就像一个魅力,非常感谢!我从来没有找到这个
  • 不客气 :)

标签: ios swift uiwebview wkwebview


【解决方案1】:

要解决它,您需要从WKPreferences 开启allowFileAccessFromFileURLs

斯威夫特

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

目标-C

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

【讨论】:

  • 除了上述之外,您可能还需要使用“allowUniversalAccessFromFileURLs”。看我的回答
  • 在您的答案中添加注释,说明它是未记录的功能,可能会意外停止工作。
【解决方案2】:

文件访问和通用文件访问(如果从设备读取媒体)

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

【讨论】:

    【解决方案3】:

    对于 Xamarin.iOS 开发人员:

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

    【讨论】:

      猜你喜欢
      • 2016-07-26
      • 2013-11-19
      • 1970-01-01
      • 2013-09-30
      • 1970-01-01
      • 1970-01-01
      • 2018-12-17
      • 2012-06-27
      相关资源
      最近更新 更多