ios的webView加载本地html图片路径显示及webview适配

来源:互联网 发布:arch linux chroot 编辑:程序博客网 时间:2024/06/05 04:26

在ios中,如果需要用到UIWebView,加载本地html,在本地html中,需要显示图片,路径显示的问题。


loadHTMLString时,将baseURL改为图片路径,在html文件中img标签直接改为图片名字即可。

</span><img src="image@3x.png"  alt="图片" /><span class="s4"><br><br></span>


    NSString *resPath = [[NSBundle mainBundle] resourcePath];    NSString *htmlFilePath = [resPath stringByAppendingPathComponent:@"index.html"];    NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"image@3x" ofType:@"png"];    if ([[NSFileManager defaultManager] fileExistsAtPath:htmlFilePath]) {        NSString *string = [NSString stringWithContentsOfFile:htmlFilePath encoding:NSUTF8StringEncoding error:nil];                if (string) {            NSString *htmlString = string;                        [_webView loadHTMLString:htmlString baseURL:[NSURL URLWithString:imagePath]];        }}

若图片显示过大,可加入以下代码适配界面:

#pragma mark - 修改html代码字符串,适应webview+ (NSString *)adaptWebViewForHtml:(NSString *) htmlStr{    NSMutableString *headHtml = [[NSMutableString alloc] initWithCapacity:0];    [headHtml appendString : @"<html>" ];        [headHtml appendString : @"<head>" ];        [headHtml appendString : @"<meta charset=\"utf-8\">" ];        [headHtml appendString : @"<meta id=\"viewport\" name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=false\" />" ];        [headHtml appendString : @"<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />" ];        [headHtml appendString : @"<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\" />" ];        [headHtml appendString : @"<meta name=\"black\" name=\"apple-mobile-web-app-status-bar-style\" />" ];        [headHtml appendString : @"<style>img{width:100%;}</style>" ];        [headHtml appendString : @"<style>table{width:100%;}</style>" ];        [headHtml appendString : @"<title>webview</title>" ];        NSString *bodyHtml;    bodyHtml = [NSString stringWithString:headHtml];    bodyHtml = [bodyHtml stringByAppendingString:htmlStr];    return bodyHtml;}






0 0