数据uri src未在UIWebView中加载的图像

我有一个从数据uri填充的简单图像,可以在MobileSafari中加载,但是当我在UIWebView中加载相同的网页时,它显示为一个损坏的图像:

 

我不知道为什么。 是否有一些我忘记的UIWebView的神奇配置?

编辑:

在指向UIWebView的Safari Web Inspector中,我注意到它将数据uri解释为application/json ,而如果我从MobileSafari中的同一服务器加载文件,则Web检查器会将其正确识别为image/jpeg

我复制了你的图像src数据uri并创建了一个简单的html文件,并将其加载到uiwebview.It工作正常,我没有看到使用本地html文件加载你的jpeg图像文件有任何问题。 请参阅下面创建的html文件。

  Sample     

使用下面的代码在viewdidload中的uiwebview中加载此sample.html。

 NSString *htmlString = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"sample" ofType:@"html"] encoding:NSUTF8StringEncoding error:nil]; NSURL *fileURL = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"tmpSample.html"]]; NSData *data = [htmlString dataUsingEncoding:NSUTF8StringEncoding]; [data writeToURL:fileURL atomically:NO]; NSURLRequest *requestObj = [NSURLRequest requestWithURL:fileURL cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:30 ]; [_yourUiWebviewView loadRequest:requestObj]; 

不要忘记将您的html文件添加到您的xcode项目中。 请检查这是否适合您。

我最终解决了这个问题,方法是将文件嵌入我的应用包中,并将我的webview的基本URL设置为该文件的父级:

  [webView loadHTMLString:html baseURL:[[[NSBundle mainBundle] URLForResource:@"myimage" withExtension:@"png"] URLByDeletingLastPathComponent ]];