的UIWebView在iOS 6不显示与webarchives相对URL的图像(UIWebView

2019-09-23 04:52发布

我们使用的是有时在我们的应用webarchives,因为它是存储HTML +所有相关图像/ CSS /脚本/等桌面上的一个文件里面,把它转化项目,然后将其加载到带有一个UIWebView非常方便的方式单呼这样的:

NSData *webArchiveData = /* ... Load data from a single file ... */ ;
[webView
    loadData:webArchiveData
    MIMEType:@"application/x-webarchive"
    textEncodingName:@"utf-8"
    baseURL:nil
];

这停在iOS 6然而工作:在HTML被加载,而是通过相对URL引用的图像不再显示。

Answer 1:

我从webarchive内的一些JavaScript location.href追查,发现在iOS 5和降低这是保存为webarchive原始的HTML的URL。 它被作为基本URL,所以从HTML(图片等)引用的资源的相对URL可以解决webarchive内正确,然后找到(因为它们与原来的绝对URL存储在那里)。

在iOS 6然而跟踪location.href给出的网址像applewebdata://1B648BC1-F143-4245-A7AD-6424C3E3D227 ,让所有相对URL是相对于这个解决过程中,不能在webarchive找到了。

我发现其中的变通办法是从什么不同为零传递到loadData:MIME类型:textEncodingName::,基本URL是这样的:

[webView
    loadData:serializedWebArchive
    MIMEType:@"application/x-webarchive"
    textEncodingName:@"utf-8"
    baseURL:[NSURL URLWithString:@"file:///"] // Passing nil here won't work on iOS 6
];

它适用于双方的iOS 6和iOS 5和倾倒location.href像以前一样给原始的HTML的相同的绝对URL。

任何缺点/建议吗?



文章来源: UIWebView on iOS 6 does not display images with relative URLs in webarchives