WKWebView在设备上显示空白,在模拟器上工作

问题描述:

我的应用程序的一个模块是一个网站。该网站主要包含一个SVG图纸,带有自定义形状的按钮(使用Raphael.js库)访问其他图纸(其他图纸使用svg图纸)。WKWebView在设备上显示空白,在模拟器上工作

如果设备在iOS 7上,我使用UIWebView,一切正常。

对于iOS 8设备,我使用WKWebView。我遇到了一些问题,其中一些问题由this post解决。我可以在这些模拟器上看到我的网站(iPhone 5/iOS 8.0(12A365)& iPhone 5s/iOS 8.0),但我无法在iPod Touch上看到它(第5代,运行iOS 8.0.2)。它显示一个空白屏幕。

我不知道该找什么。任何想法?


编辑

以下@丹Fabulich的答案(here)之后,我现在得到了一个真正的加载web视图,从未完成加载了。他的回答告诉我们,从一个字符串加载html时,WKWebView存在一个错误。他的答案是将html内容复制到一个新的子文件夹中,然后从该URL调用loadRequest

不幸的是,我仍然坚持一个非工作的webview。任何线索? webview永远无法完成加载内容的原因是什么?

+1

我相信复制到文档文件夹不起作用;我认为只有复制到临时文件夹('NSTemporaryDirectory()')才能解决这个问题。 – SeanR 2014-10-20 06:06:34

+0

IMO,这是不是一个足够的问题要StackOverflow回答。它的确听起来像你在我的答案中报告的错误,但通常没有什么增加我的答案。 (请注意,我没有编写解决方法代码; shazron做了。)我唯一的建议是尝试让shazron的解决方案项目起作用。如果这有效,那么你有一些工作,一些没有的;仔细的审查和实验应该可以帮助你找到差异。 – 2014-10-20 07:41:02

+0

我看到了同样的问题,但是:NSURLRequest * request = [NSURLRequest requestWithURL:url]; [webView loadRequest:request]; – user3246173 2014-10-20 16:06:20

我有一些问题,但我解决了配置选项的问题。这是我的代码。

var a = dic["adi"]?.asString() 
    var path = NSBundle.mainBundle().pathForResource(a, ofType: "htm") 
    var url = NSURL(fileURLWithPath:path!) 
    var request = NSURLRequest(URL:url!) 

    var theConfiguration = WKWebViewConfiguration() 

    theWebView = WKWebView(frame:self.view.frame, configuration: theConfiguration) 

    var error:NSError? 
    let text2 = String(contentsOfFile: path!, encoding:NSUTF8StringEncoding, error: &error) 

    if let theError = error 
    { 
     print("\(theError.localizedDescription)") 
    } 

    theWebView!.loadHTMLString(text2!, baseURL: nil) 
    self.view.addSubview(theWebView!) 

希望这有助于。

+0

你确定它现在有效吗? – xhg 2014-12-12 21:24:29