关于webview 加载本地图片资源 显示不出来的解决办法

来源:互联网 发布:阿里云服务器如何使用 编辑:程序博客网 时间:2024/05/20 06:28
由于项目需要  需要加载本地和网络的图片 
由于数据是动态的  所以我需要把得到的html网页 拆揭   换上动态数据

可是遇到一个奇怪的问题   加载出来的东西   本地的图片 不能加载上。。。。  其余的文字 什么的 都没有问题 


网上找了个例子 

    NSString *path = [[NSBundle mainBundlebundlePath];

    NSURL *baseURL = [NSURL fileURLWithPath:path];

    NSString  *htmlString = [NSString stringWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"index_pic1"ofType:@"html"]  encoding:NSUTF8StringEncoding error:nil];

    [self.moblieWebView loadHTMLString:htmlStringbaseURL:baseURL];

把我自己获得的html 填充进去  没有任何问题 

很奇怪 问题在哪呢?

   self.finalStr = [NSMutableString string];  //初始化拼装字符串 

    self.moblieWebView = [[[UIWebViewalloc]initWithFrame:CGRectMake(self.view.frame.origin.x,self.view.frame.origin.yself.view.frame.size.width,self.view.frame.size.height - kTabBarHeight) ] autorelease];

    self.moblieWebView.autoresizingMask =UIViewAutoresizingFlexibleWidth |UIViewAutoresizingFlexibleHeight;

    self.moblieWebView.dataDetectorTypes = UIDataDetectorTypeNone;//去掉数字下划线

    NSString *resourcePath = [ [NSBundle mainBundle]resourcePath];

    NSURL *baseURL = [NSURL fileURLWithPath:resourcePath];    

    

    NSString *HeadPath = [resourcePathstringByAppendingPathComponent:@"Head.html"];

    

    NSString *startString=[[[NSString alloc]initWithContentsOfFile:HeadPath  encoding:NSUTF8StringEncodingerror:nilautorelease];

    

    //html head

    [self.finalStr appendString:startString];

    

    //加载动态html数据


    [self.finalStr appendString:@"<body>\n"];

    [self.finalStr appendString:@"<div id=\"caption\">\n"];


    //加载标题

      [self.finalStr appendString:@"<div id=\"title\">\n"];

      [self.finalStr appendString:@"<h1>"];

      [self.finalStr appendFormat:@"标题"];  //标题

      [self.finalStr appendString:@"</h1>\n"];

      [self.finalStr appendString:@"</div>\n"];

    

    //加载日期 

    

    [self.finalStr appendString:@"<div id=\"date\">\n"];

    [self.finalStr appendString:@"<h2>"];

    [self.finalStr appendFormat:@"2012-10-09"];  //日期

    [self.finalStr appendString:@"</h2>\n"];

    [self.finalStr appendString:@" </div>\n"];

    [self.finalStr appendString:@"<div id=\"text\">\n"];

    

    

    //显示的图片

    [self.finalStr appendString:@"<a href = \"javascript:void(0)\" onclick = \"document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'\"><div id=\"pic\"><img class=\"img-wrapper\" src=\"http://www.acwind.net/images/icdb_pics_collect/856_3723.jpg\"></div>\n"];

    

    //显示的图片上的加号 

    [self.finalStr appendFormat:@"<div id=\"pic\"><img class=\"plus\" src=\"NewsPicPlus@2x.png\" style=\"position:absolute; \"/></div></a> "];

    

    //点击放大后 图片上的叉号

    [self.finalStr appendString:@"<div id=\"light\" class=\"white_content\">"];

    [self.finalStr appendString:@"<a href = \"javascript:void(0)\" onclick = \"document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'\"><img id=\"button\" class=\"funtion_button\" src=\"Shutdown@2x.png\" style=\"display:block;\"/><img id=\"EnlargePhoto\" src=\"http://www.acwind.net/images/icdb_pics_collect/856_3723.jpg\" onload=\"javascript:DrawImage(this)\"/ ></a></div>"];

    [self.finalStr appendString:@"<div id=\"fade\" class=\"black_overlay\"></div>"];

    

    //简介

    [self.finalStr appendFormat:@"<p>简介 简介 简介</p>"];

    

    //内容

      [self.finalStr appendFormat:@"<p>这里是内容</p>"];

    

    //时间

     [self.finalStr appendFormat:@"<p>这里是时间</p>"];

    

    //作者

     [self.finalStr appendFormat:@"<p>这里是作者</p>"];

    

    

    

    //html end

    [self.finalStr appendFormat:@"</div>\n</div>\n</body>\n</html>\n"];

    

     [self.moblieWebView loadHTMLString:self.finalStrbaseURL:nil];

    

    self.moblieWebView.scalesPageToFit = YES;

    [self.view addSubview:self.moblieWebView];



最后才发现   即使你是 自己拼装的字符串  这个  baseURL 也需要制定一下 如果不制定 本地图片就不能加载~ 

换成

 [self.moblieWebView loadHTMLString:self.finalStrbaseURL:baseURL];

完美解决! 


至今没搞懂 苹果底层 是怎么处理的  即使是自己拼装的字符串 也不能让 baseUrl 这个属性为空~ 

也欢迎有大侠帮小菜解答一下  

原创粉丝点击