在iphone sdk中将html上载到webview时出现问题 NSMutableURLRequest*request=[NSMutableURLRequest requestWithURL:[nsurlurlwithstring:loadUrl]]; NSData*returnData=[NSURLConnection sendSynchronousRequest:request returningResponse:nil错误:nil]; NSMutableString*returnString=[[NSMutableString alloc]initWithData:returnData编码:NSUTF8StringEncoding]; NSString*absString=[[NSBundle mainBundle]pathForResource:@“footer”类型:@“png”]; NSURL*footerURL=[NSURL fileURLWithPath:absString]; NSString*appendString=@; appendString=[appendString stringByAppendingString:@”“]; appendString=[appendString stringByAppendingString:@”“]; appendString=[appendString stringByAppendingString:@”“]; appendString=[appendString stringByAppendingString:@”“]; appendString=[appendString stringByAppendingString:@“详细信息”]; appendString=[appendString stringByAppendingString:@”“]; appendString=[appendString stringByAppendingString:@”“]; appendString=[appendString stringByAppendingString:@“”; //returnString=[returnString StringByReplacingOfString:@”“with String:appendString]; [returnString ReplaceConcurrencesofString:@“” with字符串:appendString 选项:NSCaseInsensitiveSearch 范围:NSMakeRange(0,[returnString长度]); [returnString ReplaceCurrencesofString:@“footer.png” withString:[footerURL绝对字符串] 选项:NSCaseInsensitiveSearch 范围:NSMakeRange(0,[returnString长度]); printf(“\n返回字符串:%s”,[returnString UTF8String]); [myWebView loadHTMLString:returnString baseURL:[NSURL URLWithString:@]http://abc.api.abcdef.com"]];
在上面的代码中,footer.png和details_back.png是存储在我的资源文件夹中的本地图像 这里的问题是,我从作为baseurl传递到webview的服务器链接中获取了背景图像,但未显示存储在资源中的图像footer.png和details_back.png 如果我使用资源包作为baseurl,则不会显示来自服务器链接的背景图像 谁能给我一些解决这个问题的建议吗 多亏了盖伊的努力,在iphone sdk中将html上载到webview时出现问题 NSMutableURLRequest*request=[NSMutableURLRequest requestWithURL:[nsurlurlwithstring:loadUrl]]; NSData*returnData=[NSURLConnection sendSynchronousRequest:request returningResponse:nil错误:nil]; NSMutableString*returnString=[[NSMutableString alloc]initWithData:returnData编码:NSUTF8StringEncoding]; NSString*absString=[[NSBundle mainBundle]pathForResource:@“footer”类型:@“png”]; NSURL*footerURL=[NSURL fileURLWithPath:absString]; NSString*appendString=@; appendString=[appendString stringByAppendingString:@”“]; appendString=[appendString stringByAppendingString:@”“]; appendString=[appendString stringByAppendingString:@”“]; appendString=[appendString stringByAppendingString:@”“]; appendString=[appendString stringByAppendingString:@“详细信息”]; appendString=[appendString stringByAppendingString:@”“]; appendString=[appendString stringByAppendingString:@”“]; appendString=[appendString stringByAppendingString:@“”; //returnString=[returnString StringByReplacingOfString:@”“with String:appendString]; [returnString ReplaceConcurrencesofString:@“” with字符串:appendString 选项:NSCaseInsensitiveSearch 范围:NSMakeRange(0,[returnString长度]); [returnString ReplaceCurrencesofString:@“footer.png” withString:[footerURL绝对字符串] 选项:NSCaseInsensitiveSearch 范围:NSMakeRange(0,[returnString长度]); printf(“\n返回字符串:%s”,[returnString UTF8String]); [myWebView loadHTMLString:returnString baseURL:[NSURL URLWithString:@]http://abc.api.abcdef.com"]];,html,cocoa-touch,uiwebview,Html,Cocoa Touch,Uiwebview,在上面的代码中,footer.png和details_back.png是存储在我的资源文件夹中的本地图像 这里的问题是,我从作为baseurl传递到webview的服务器链接中获取了背景图像,但未显示存储在资源中的图像footer.png和details_back.png 如果我使用资源包作为baseurl,则不会显示来自服务器链接的背景图像 谁能给我一些解决这个问题的建议吗 多亏了盖伊的努力, 莫尼什语 如果使用资源包作为基本url的唯一结果是缺少背景图像,则可以尝试替换其href属性,就像使
莫尼什语 如果使用资源包作为基本url的唯一结果是缺少背景图像,则可以尝试替换其href属性,就像使用
标记一样。首先,出于性能原因,在构建字符串时应使用NSMutableString
html中的图像src路径需要指向资源包的完整URL路径。要获取资源的URL路径,请执行以下操作:
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:loadUrl]];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSMutableString *returnString = [[NSMutableString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSString *absString = [[NSBundle mainBundle]pathForResource:@"footer" ofType:@"png"];
NSURL *footerURL = [NSURL fileURLWithPath:absString];
NSString* appendString=@"";
appendString = [appendString stringByAppendingString:@"<body>"];
appendString =[appendString stringByAppendingString:@"<table background='footer.png' width='320' height='45' style='background-repeat:no-repeat'>"];
appendString =[appendString stringByAppendingString:@"<tr>"];
appendString =[appendString stringByAppendingString:@"<td align='left' width='57' height='31' style='padding: 6px 0 0 0' ><a href='/map/'><img src='details_Back.png'/></a></td>"];
appendString =[appendString stringByAppendingString:@"<td align='left' valign='middle' style='padding: 0 0 0 65px; font-family:Helvetica; font-size:21px ; font-weight:bold ; color:#FFF'>Details</td>"];
appendString =[appendString stringByAppendingString:@"</tr>"];
appendString =[appendString stringByAppendingString:@"</table>"];
appendString =[appendString stringByAppendingString:@"<br>"];
//returnString = [returnString stringByReplacingOccurrencesOfString:@"<body>" withString:appendString];
[returnString replaceOccurrencesOfString:@"<body>"
withString:appendString
options:NSCaseInsensitiveSearch
range:NSMakeRange(0, [returnString length])];
[returnString replaceOccurrencesOfString:@"footer.png"
withString:[footerURL absoluteString]
options:NSCaseInsensitiveSearch
range:NSMakeRange(0, [returnString length])];
printf("\n return string :%s",[returnString UTF8String]);
[myWebView loadHTMLString:returnString baseURL:[NSURL URLWithString:@"http://abc.api.abcdef.com"]];
获取图像url并构建自定义正文后,将用图像的完整url替换footer.png:
NSString *footerPath = [[NSBundle mainBundle]
pathForResource:@"footer"
ofType:@"png"];
NSURL *footerURL = [NSURL fileURLWithPath:footerPath];
我可以建议你看看如何构建你的HTML吗?@Black Frog:我按照你的建议做了尝试,尽管我没有让本地图像显示出来。你能帮我做些其他的想法吗?我在发布代码之前测试了代码。发布了您的代码副本,我将查看它。我已编辑代码,请检查我犯错误的位置。Monish,请将页脚URL写入控制台:NSLo(@“页脚URL:%@,[FooteURL absoluteString]);把它贴在这里。我想看看你有什么。页脚URL:file://localhost/Users/kishorebabub/Library/Application%20Support/iPhone%20Simulator/4.2/Applications/CA1946D9-7700-4175-9143-0D8318B5C32B/ParkingAreaLocator.app/footer.png
[myCustomBody replaceOccurrencesOfString:@"footer.png"
withString:[footerURL absoluteString]
options:NSCaseInsensitiveSearch
range:NSMakeRange(0, [myCustomBody length])];