数据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 ]];